{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2148ec88",
   "metadata": {},
   "source": [
    "# Cumulative distribution functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7ad70082",
   "metadata": {},
   "outputs": [],
   "source": [
    "from os.path import basename, exists\n",
    "\n",
    "\n",
    "def download(url):\n",
    "    filename = basename(url)\n",
    "    if not exists(filename):\n",
    "        from urllib.request import urlretrieve\n",
    "\n",
    "        local, _ = urlretrieve(url, filename)\n",
    "        print(\"Downloaded \" + local)\n",
    "\n",
    "\n",
    "download(\"https://github.com/AllenDowney/ThinkStats2/raw/master/code/thinkstats2.py\")\n",
    "download(\"https://github.com/AllenDowney/ThinkStats2/raw/master/code/thinkplot.py\")\n",
    "download(\"https://github.com/AllenDowney/ThinkStats2/raw/master/code/nsfg.py\")\n",
    "download(\"https://github.com/AllenDowney/ThinkStats2/raw/master/code/first.py\")\n",
    "\n",
    "\n",
    "download(\"https://github.com/AllenDowney/ThinkStats2/raw/master/code/2002FemPreg.dct\")\n",
    "download(\n",
    "    \"https://github.com/AllenDowney/ThinkStats2/raw/master/code/2002FemPreg.dat.gz\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "162b32f7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import thinkstats2\n",
    "import thinkplot"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e5f2250",
   "metadata": {},
   "source": [
    "## The limits of PMFs\n",
    "\n",
    "PMFs work well if the number of values is small. But as the number of\n",
    "values increases, the probability associated with each value gets\n",
    "smaller and the effect of random noise increases.\n",
    "\n",
    "For example, we might be interested in the distribution of birth\n",
    "weights. In the NSFG data, the variable `totalwgt_lb` records weight at\n",
    "birth in pounds.\n",
    "Figure [\\[nsfg_birthwgt_pmf\\]](#nsfg_birthwgt_pmf){reference-type=\"ref\"\n",
    "reference=\"nsfg_birthwgt_pmf\"} shows the PMF of these values for first\n",
    "babies and others."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d9dd00be",
   "metadata": {},
   "outputs": [],
   "source": [
    "import first\n",
    "\n",
    "live, firsts, others = first.MakeFrames()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cec7492a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Firsts 4413 4363\n",
      "Others 4735 4675\n"
     ]
    }
   ],
   "source": [
    "first_wgt = firsts.totalwgt_lb\n",
    "first_wgt_dropna = first_wgt.dropna()\n",
    "print('Firsts', len(first_wgt), len(first_wgt_dropna))\n",
    " \n",
    "other_wgt = others.totalwgt_lb\n",
    "other_wgt_dropna = other_wgt.dropna()\n",
    "print('Others', len(other_wgt), len(other_wgt_dropna))\n",
    "\n",
    "first_pmf = thinkstats2.Pmf(first_wgt_dropna, label='first')\n",
    "other_pmf = thinkstats2.Pmf(other_wgt_dropna, label='other')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b5c7d4a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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faS3335bO3fu1E9/+lMtW7ZMP/3pT2v9TjkAAICmpE5hKSQkRL6+vpoyZYrefPNNx40dy8rKnNoxwwQAAJqLOoWl06dP6/Tp01q8eLFefPHFa47fyGfDAQAANGaWfjYcgOYhYfUude0e0qD9r/zV0AbrHwDM1CksDR06VK+99po2b96siooKjRw5UsnJyWrdunVD1QcAAGCpOt1n6eWXX9bzzz+v2267TR06dNDy5cv11FNPNVRtAAAAlqtTWPrggw/05ptv6tNPP9WmTZv08ccf68MPP1R1dXVD1QcAAGCpOoWlwsJCPfDAA47HsbGxstlsOnbsWL0XBqBlSN120OoSAMBUncLSxYsX5e3t7bSvVatWqqysrNeiAAAAGos6LfA2DENTp06Vl5eXY9+FCxf05JNPysfHx7Fv48aN9VchAACAheoUlqZMmXLNvkmTJtVbMQAAAI1NncLSu+++21B1AECDYE0UgJtVpzVLAHArJazeZXUJAEBYAoDLapqFYnYKaNkISwAAACYISwAAACYISwBuCdYfAWiqCEsAcBNYzwQ0f4QlAAAAE4QlAAAAE4QlAAAAE4QlAAAAE4QlAC0e79QDYIawBKBR491mAKxGWAIAADBBWALQ6PCyGIDGhLAEAABggrAE4JZh/RGApoiwBAAAYIKwBAAuNMS6KWbWgKaJsAQAAGDCw+oCAOBWSVi9S127h1hdBoAmhpklAAAAE4QlAAAAE4QlAAAAE5aHpVWrViksLEze3t6Kjo7W7t27Tdtv2LBB4eHh8vb2Vu/evbV161an4xs3btT999+voKAg2Ww2FRQUXNPH8OHDZbPZnLYnn3yyPocF4AZw524AjZGlYWn9+vVKTExUcnKy8vPzFRERobi4OJWUlLhsn52drQkTJmj69Onau3ev4uPjFR8fr3379jnalJWVaejQoXrllVdMrz1jxgwdP37csb366qv1OjYAANA8WBqWUlNTNWPGDE2bNk09e/ZUWlqa2rRpo3feecdl++XLl2vUqFGaN2+eevToocWLF6tfv35auXKlo81jjz2mhQsXKjY21vTabdq0kd1ud2x+fn71OjYAjR8zWQBqw7KwVFFRoby8PKdQ4+bmptjYWOXk5Lg8Jycn55oQFBcXV2N7Mx9++KHatWunXr16KSkpSefPnzdtX15ertLSUqcNAAA0f5aFpZMn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P4da0s+oy0HpyJEjysjIaJazSjt37lRJSYk6derk+Dl15MgR/frXv1ZYWJjV5dWbdu3aycPDo15+ThGWLOTp6an+/fsrMzPTsa+6ulqZmZmKiYmxsLL6ZxiGEhIS9NFHH2nbtm3q0qWL1SU1iJEjR+of//iHCgoKHFtUVJQmTpyogoICubu7W11ivRkyZMg1t3/45z//qc6dO1tUUcM5f/680wd6S5K7u7vjN9fmqkuXLrLb7U4/o0pLS5Wbm9vsfkZJ/w5K3377rT777DMFBQVZXVKDeOyxx/T3v//d6edUaGio5s2bp08//dTq8uqNp6enBgwYUC8/p3gZzmKJiYmaMmWKoqKiNHDgQC1btkxlZWWaNm2a1aXVq6eeekpr167V//2//1e+vr6O9Q7+/v5q3bq1xdXVH19f32vWYfn4+CgoKKjZrc+aO3euBg8erJdfflljx47V7t27tWbNGq1Zs8bq0urdgw8+qJdeekmdOnXSPffco7179yo1NVWPP/641aXdtHPnzum7775zPD506JAKCgoUGBioTp06ac6cOXrxxRfVrVs3denSRQsWLFBoaKji4+OtK/oGmY01JCREjz76qPLz87VlyxZVVVU5fk4FBgbK09PTqrJvyPW+rlcHwVatWslut6t79+63utSbcr1xzps3T+PGjdO9996rESNGKD09XR9//LGysrLqdqGbfj8dbtobb7xhdOrUyfD09DQGDhxofPHFF1aXVO8kudzeffddq0trcM311gGGYRgff/yx0atXL8PLy8sIDw831qxZY3VJDaK0tNSYPXu20alTJ8Pb29vo2rWr8Zvf/MYoLy+3urSbtn37dpf/NqdMmWIYxqXbByxYsMAIDg42vLy8jJEjRxoHDhywtugbZDbWQ4cO1fhzavv27VaXXmfX+7peraneOqA243z77beNu+66y/D29jYiIiKMTZs21fk6NsNoBregBQAAaCCsWQIAADBBWAIAADBBWAIAADBBWAIAADBBWAIAADBBWAIAADBBWAIAADBBWAIAADBBWALQKGRlZclms+nMmTO1PmfRokWKjIystxoOHDggu92uH374od76bEh1GX9aWpoefPDBhi0IaKYISwDqJC0tTb6+vrp48aJj37lz59SqVSsNHz7cqe3lAHTw4MHr9jt48GAdP35c/v7+9Vrv8OHDNWfOnFq1TUpK0qxZs+Tr61uvNTQGjz/+uPLz87Vz506rSwGaHMISgDoZMWKEzp07pz179jj27dy5U3a7Xbm5ubpw4YJj//bt29WpUyfdeeed1+3X09NTdrtdNputQeq+nsLCQm3ZskVTp0615PoNzdPTU7/4xS+0YsUKq0sBmhzCEoA66d69u0JCQpw+tTsrK0s/+9nP1KVLF33xxRdO+0eMGCFJqq6uVkpKirp06aLWrVsrIiJCf/zjH53aXv0y3FtvvaWOHTuqTZs2evjhh5WamqqAgIBravr973+vsLAw+fv7a/z48Y6X0aZOnaodO3Zo+fLlstlsstlsOnz4sMtx/eEPf1BERIQ6dOjg2Pfee+8pICBAmzZtUrdu3eTt7a24uDgdPXrU6dzVq1frzjvvlKenp7p3767f//73jmOHDx+WzWZTQUGBY9+ZM2dks9kcz+HlsWdmZioqKkpt2rTR4MGDdeDAAafrLFmyRMHBwfL19dX06dOdgunlfgYOHCgfHx8FBARoyJAhOnLkiOP4gw8+qM2bN+vHH390+RwAcI2wBKDORowYoe3btzseb9++XcOHD9ewYcMc+3/88Ufl5uY6wlJKSoo++OADpaWl6auvvtLcuXM1adIk7dixw+U1Pv/8cz355JOaPXu2CgoK9JOf/EQvvfTSNe0OHjyoTZs2acuWLdqyZYt27NihJUuWSJKWL1+umJgYzZgxQ8ePH9fx48fVsWNHl9fbuXOnoqKirtl//vx5vfTSS/rggw/0+eef68yZMxo/frzj+EcffaTZs2fr17/+tfbt26cnnnhC06ZNc3p+aus3v/mNli5dqj179sjDw0OPP/6449gf/vAHLVq0SC+//LL27NmjkJAQvfnmm47jFy9eVHx8vIYNG6a///3vysnJ0cyZM51m6qKionTx4kXl5ubWuTagRTMAoI7eeustw8fHx6isrDRKS0sNDw8Po6SkxFi7dq1x7733GoZhGJmZmYYk48iRI8aFCxeMNm3aGNnZ2U79TJ8+3ZgwYYJhGIaxfft2Q5Jx+vRpwzAMY9y4ccbo0aOd2k+cONHw9/d3PE5OTjbatGljlJaWOvbNmzfPiI6OdjweNmyYMXv27OuOKSIiwnjhhRec9r377ruGJOOLL75w7Nu/f78hycjNzTUMwzAGDx5szJgxw+m8MWPGGA888IBhGIZx6NAhQ5Kxd+9ex/HTp08bkozt27c7jf2zzz5ztPnzn/9sSDJ+/PFHwzAMIyYmxviP//gPp+tER0cbERERhmEYxv/7f//PkGRkZWWZjrNt27bGe++9d51nA8CVmFkCUGfDhw9XWVmZvvzyS+3cuVN33323br/9dg0bNsyxbikrK0tdu3ZVp06d9N133+n8+fP6yU9+ottuu82xffDBBzUu/j5w4IAGDhzotO/qx5IUFhbmtCA7JCREJSUldR7Tjz/+KG9v72v2e3h4aMCAAY7H4eHhCggI0P79+yVJ+/fv15AhQ5zOGTJkiON4XfTp08fx95CQEElyjGX//v2Kjo52ah8TE+P4e2BgoKZOnaq4uDg9+OCDWr58uY4fP37NNVq3bq3z58/XuTagJfOwugAATc9dd92lO+64Q9u3b9fp06c1bNgwSVJoaKg6duyo7Oxsbd++Xffdd5+kS++Wk6Q///nPTmuCJMnLy+umamnVqpXTY5vNpurq6jr3065dO50+ffqmanHFze3S76SGYTj2VVZWumx75Vguv3xWl7G8++67evrpp5Wenq7169dr/vz5ysjI0KBBgxxtTp06pdtvv71OYwBaOmaWANyQESNGKCsrS1lZWU63DLj33nv1ySefaPfu3Y71Sj179pSXl5cKCwt11113OW01rSHq3r27vvzyS6d9Vz+uDU9PT1VVVV23Xd++ffX1119fs//ixYtO7/w7cOCAzpw5ox49ekiSevTooc8//9zpnM8//1w9e/aUJEcwuXKW58rF3rXVo0ePa9YaXbmY/spxJCUlKTs7W7169dLatWsdxw4ePKgLFy6ob9++db4+0JIxswTghowYMUJPPfWUKisrHTNLkjRs2DAlJCSooqLCEZZ8fX31n//5n5o7d66qq6s1dOhQnT17Vp9//rn8/Pw0ZcqUa/qfNWuW7r33XqWmpurBBx/Utm3b9Mknn9T51gJhYWHKzc3V4cOHddtttykwMNAx23OluLg4/fKXv1RVVZXc3d0d+1u1aqVZs2ZpxYoV8vDwUEJCggYNGuR4SXDevHkaO3as+vbtq9jYWH388cfauHGjPvvsM0mXXvYaNGiQlixZoi5duqikpETz58+v0xgkafbs2Zo6daqioqI0ZMgQffjhh/rqq6/UtWtXSdKhQ4e0Zs0aPfTQQwoNDdWBAwf07bffavLkyY4+du7cqa5du9bqVg4ArmD1oikATdPlhcvh4eFO+w8fPmxIMrp37+60v7q62li2bJnRvXt3o1WrVsbtt99uxMXFGTt27DAM49oF3oZhGGvWrDE6dOhgtG7d2oiPjzdefPFFw263O44nJyc7Fjhf9vrrrxudO3d2PD5w4IAxaNAgo3Xr1oYk49ChQy7HU1lZaYSGhhrp6emOfe+++67h7+9v/OlPfzK6du1qeHl5GbGxscaRI0eczn3zzTeNrl27Gq1atTLuvvtu44MPPnA6/vXXXxsxMTFG69atjcjISOMvf/mLywXeV459796919T70ksvGe3atTNuu+02Y8qUKcYzzzzjGH9RUZERHx9vhISEGJ6enkbnzp2NhQsXGlVVVY7z77//fiMlJcXl+AHUzGYYV7yQDgCN2IwZM/TNN9802F2oV61apc2bN+vTTz+VdOk+S3PmzKnTR7A0Vl999ZXuu+8+/fOf/6z3u6QDzR0vwwFotF577TX95Cc/kY+Pjz755BO9//77TvcWqm9PPPGEzpw5ox9++KHZfeTJ8ePH9cEHHxCUgBtAWALQaO3evVuvvvqqfvjhB3Xt2lUrVqzQL3/5ywa7noeHh37zm980WP9Wio2NtboEoMniZTgAAAAT3DoAAADABGEJAADABGEJAADABGEJAADABGEJAADABGEJAADABGEJAADABGEJAADAxP8HcvkvTQgLDJYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "width = 0.4 / 16\n",
    "\n",
    "# plot PMFs of birth weights for first babies and others\n",
    "thinkplot.PrePlot(2)\n",
    "thinkplot.Hist(first_pmf, align='right', width=width)\n",
    "thinkplot.Hist(other_pmf, align='left', width=width)\n",
    "thinkplot.Config(xlabel='Weight (pounds)', ylabel='PMF')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f195bde7",
   "metadata": {},
   "source": [
    "Overall, these distributions resemble the bell shape of a normal\n",
    "distribution, with many values near the mean and a few values much\n",
    "higher and lower.\n",
    "\n",
    "But parts of this figure are hard to interpret. There are many spikes\n",
    "and valleys, and some apparent differences between the distributions. It\n",
    "is hard to tell which of these features are meaningful. Also, it is hard\n",
    "to see overall patterns; for example, which distribution do you think\n",
    "has the higher mean?\n",
    "\n",
    "These problems can be mitigated by binning the data; that is, dividing\n",
    "the range of values into non-overlapping intervals and counting the\n",
    "number of values in each bin. Binning can be useful, but it is tricky to\n",
    "get the size of the bins right. If they are big enough to smooth out\n",
    "noise, they might also smooth out useful information.\n",
    "\n",
    "An alternative that avoids these problems is the cumulative distribution\n",
    "function (CDF), which is the subject of this chapter. But before I can\n",
    "explain CDFs, I have to explain percentiles."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4138e00",
   "metadata": {},
   "source": [
    "## Percentiles\n",
    "\n",
    "If you have taken a standardized test, you probably got your results in\n",
    "the form of a raw score and a **percentile rank**. In this context, the\n",
    "percentile rank is the fraction of people who scored lower than you (or\n",
    "the same). So if you are \"in the 90th percentile,\" you did as well as or\n",
    "better than 90% of the people who took the exam.\n",
    "\n",
    "Here's how you could compute the percentile rank of a value,\n",
    "`your_score`, relative to the values in the sequence `scores`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2faaf708",
   "metadata": {},
   "outputs": [],
   "source": [
    "def PercentileRank(scores, your_score):\n",
    "    count = 0\n",
    "    for score in scores:\n",
    "        if score <= your_score:\n",
    "            count += 1\n",
    "\n",
    "    percentile_rank = 100.0 * count / len(scores)\n",
    "    return percentile_rank"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4aa342d4",
   "metadata": {},
   "source": [
    "As an example, if the scores in the sequence were 55, 66, 77, 88 and 99,\n",
    "and you got the 88, then your percentile rank would be `100 * 4 / 5`\n",
    "which is 80."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "df39c7f3",
   "metadata": {},
   "outputs": [],
   "source": [
    "t = [55, 66, 77, 88, 99]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "029d94b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "80.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PercentileRank(t, 88)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a026ec4d",
   "metadata": {},
   "source": [
    "If you are given a value, it is easy to find its percentile rank; going\n",
    "the other way is slightly harder. If you are given a percentile rank and\n",
    "you want to find the corresponding value, one option is to sort the\n",
    "values and search for the one you want:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1e68542e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def Percentile(scores, percentile_rank):\n",
    "    scores.sort()\n",
    "    for score in scores:\n",
    "        if PercentileRank(scores, score) >= percentile_rank:\n",
    "            return score"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0058a9a8",
   "metadata": {},
   "source": [
    "The result of this calculation is a **percentile**. For example, the\n",
    "50th percentile is the value with percentile rank 50. In the\n",
    "distribution of exam scores, the 50th percentile is 77."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "83261d15",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "77"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Percentile(t, 50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa7f2ef7",
   "metadata": {},
   "source": [
    "This implementation of `Percentile` is not efficient. A better approach\n",
    "is to use the percentile rank to compute the index of the corresponding\n",
    "percentile:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2e0a763d",
   "metadata": {},
   "outputs": [],
   "source": [
    "def Percentile2(scores, percentile_rank):\n",
    "    scores.sort()\n",
    "    index = percentile_rank * (len(scores)-1) // 100\n",
    "    return scores[index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "fc15e580",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "77"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Percentile2(t, 50)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "68fd4190",
   "metadata": {},
   "source": [
    "The difference between \"percentile\" and \"percentile rank\" can be\n",
    "confusing, and people do not always use the terms precisely. To\n",
    "summarize, `PercentileRank` takes a value and computes its percentile\n",
    "rank in a set of values; `Percentile` takes a percentile rank and\n",
    "computes the corresponding value."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "243f1bc9",
   "metadata": {},
   "source": [
    "## CDFs\n",
    "\n",
    "Now that we understand percentiles and percentile ranks, we are ready to\n",
    "tackle the **cumulative distribution function** (CDF). The CDF is the\n",
    "function that maps from a value to its percentile rank.\n",
    "\n",
    "The CDF is a function of $x$, where $x$ is any value that might appear\n",
    "in the distribution. To evaluate $CDF(x)$ for a particular value of\n",
    "$x$, we compute the fraction of values in the distribution less than or\n",
    "equal to $x$.\n",
    "\n",
    "Here's what that looks like as a function that takes a sequence,\n",
    "`sample`, and a value, `x`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ddfab968",
   "metadata": {},
   "outputs": [],
   "source": [
    "def EvalCdf(sample, x):\n",
    "    count = 0.0\n",
    "    for value in sample:\n",
    "        if value <= x:\n",
    "            count += 1\n",
    "\n",
    "    prob = count / len(sample)\n",
    "    return prob"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34527e0d",
   "metadata": {},
   "source": [
    "This function is almost identical to `PercentileRank`, except that the\n",
    "result is a probability in the range 0--1 rather than a percentile rank\n",
    "in the range 0--100.\n",
    "\n",
    "As an example, suppose we collect a sample with the values\n",
    "`[1, 2, 2, 3, 5]`. Here are some values from its CDF: $$CDF(0) = 0$$\n",
    "$$CDF(1) = 0.2$$ $$CDF(2) = 0.6$$ $$CDF(3) = 0.8$$ $$CDF(4) = 0.8$$\n",
    "$$CDF(5) = 1$$ We can evaluate the CDF for any value of $x$, not just\n",
    "values that appear in the sample. If $x$ is less than the smallest value\n",
    "in the sample, $CDF(x)$ is 0. If $x$ is greater than the largest value,\n",
    "$CDF(x)$ is 1.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "a092f3ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0, 0.2, 0.6, 0.8, 0.8, 1.0)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t = [1, 2, 2, 3, 5]\n",
    "\n",
    "EvalCdf(t, 0), EvalCdf(t, 1), EvalCdf(t, 2), EvalCdf(t, 3), EvalCdf(t, 4), EvalCdf(t, 5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a5849114",
   "metadata": {},
   "source": [
    "Figure [\\[example_cdf\\]](#example_cdf){reference-type=\"ref\"\n",
    "reference=\"example_cdf\"} is a graphical representation of this CDF. The\n",
    "CDF of a sample is a step function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c6d6ca75",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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hAn64osvrngoAACAyxVU3JSXl6t79+71Pt+jRw//D/gDAACwQ1Bxc+7cOUVERNT7fNu2bVVTU3PFQwEAAFyuoD8ttWzZMrVv377O5yorK694IAAAgCsRVNzceOONWrp06SXPAQAAsEtQcXPkyJFmGgMAAKBpBHXPzSeffKK+ffvK6/Ve9FxFRYX69eunzz77rMmGAwAACFZQcZObm6upU6cqKirqoudcLpceeeQR5eTkNNlwAAAAwQoqbr766ivdc8899T4/evRolZSUXPFQAAAAlyvon3PTtm3bep9v06aNTp48ecVDAQAAXK6g4iY2Nla7d++u9/mvv/5aXbp0ueKhAAAALldQcTNmzBjNnTtX586du+i5s2fPav78+brvvvuabDgAAIBgBfVR8Dlz5ujDDz/UrbfeqhkzZqhXr16SpL179yovL08+n0+zZ89ulkEBAAAaI6i4cbvd2rp1q6ZNm6asrCxZliVJcjgcSklJUV5entxud7MMCgAA0BhB//qFbt26ad26dfrxxx914MABWZalW265RR07dmyO+QAAAIISdNyc17FjR912221NOQsAAMAVC+qGYgAAgNaOuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AAIBRiBsAAGAU4gYAABilVcRNXl6eunfvrsjISCUmJmrbtm2Num7FihVyOBxKTU1t3gEBAEDIsD1uVq5cqYyMDM2fP187duzQoEGDlJKSohMnTjR43ZEjR/T4449rxIgRLTQpAAAIBbbHTU5OjqZOnapJkyapb9++ys/PV7t27VRQUFDvNT6fTw899JCeffZZ9ezZswWnBQAArZ2tcVNTU6OSkhIlJyf7j4WFhSk5OVnFxcX1Xvfcc88pOjpakydPvuTXqK6ultfrDXgAAABz2Ro3p06dks/nk9vtDjjudrvl8XjqvGbLli3661//qqVLlzbqa2RnZ8vlcvkfcXFxVzw3AABovWx/WyoYlZWVmjBhgpYuXarOnTs36pqsrCxVVFT4H2VlZc08JQAAsFMbO794586dFR4ervLy8oDj5eXliomJuej8gwcP6siRIxo3bpz/WG1trSSpTZs22rdvn2666aaAa5xOp5xOZzNMDwAAWiNbX7mJiIjQ0KFDVVhY6D9WW1urwsJCJSUlXXR+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6NGjVVVVVe81W7du1fjx4zV58mTt3LlTqampSk1N1e7du1tw8sa5nPVJP/8U0V/v33fffddCEwfnhhtu0MKFC1VSUqIvv/xSv/nNb3T//fdrz549dZ4fSnt3XrBrlEJn/y60fft2vfnmmxo4cGCD54XiPkqNX58UenvYr1+/gHm3bNlS77m27Z+FoEmyVq9e3eA5Tz75pNWvX7+AY2lpaVZKSkozTtZ0GrPGTz/91JJk/fjjjy0yU1M7ceKEJcnatGlTvef87ne/s8aOHRtwLDEx0XrkkUeae7wr1pj1vf3225bL5Wq5oZpYx44drWXLltX5XCjv3a81tMZQ3b/KykrrlltusTZu3GiNHDnSmjlzZr3nhuI+BrO+UNvD+fPnW4MGDWr0+XbtH6/cNJPi4mIlJycHHEtJSVFxcbFNEzWf+Ph4denSRXfffbc+//xzu8dptIqKCklSp06d6j0nlPexMeuTpNOnT6tbt26Ki4u75KsErYXP59OKFStUVVWlpKSkOs8J5b2TGrdGKTT3b/r06Ro7duxF+1OXUNzHYNYnhd4efvvtt+ratat69uyphx56SEePHq33XLv276r7xZktxePxyO12Bxxzu93yer06e/asrrnmGpsmazpdunRRfn6+hg0bpurqai1btkyjRo3Sv//9bw0ZMsTu8RpUW1urWbNm6fbbb1f//v3rPa++fWyt9xWd19j19erVSwUFBRo4cKAqKir0yiuvaPjw4dqzZ0+z/4LZy7Fr1y4lJSXp3Llzat++vVavXq2+ffvWeW6o7l0wawy1/ZOkFStWaMeOHdq+fXujzg+1fQx2faG2h4mJiVq+fLl69eql48eP69lnn9WIESO0e/dudejQ4aLz7do/4gaXrVevXurVq5f/z8OHD9fBgwf16quv6t1337VxskubPn26du/e3eB7xaGssetLSkoKeFVg+PDh6tOnj9588009//zzzT1m0Hr16qXS0lJVVFRo1apVSk9P16ZNm+r95h+KglljqO1fWVmZZs6cqY0bN7bqm2Yv1+WsL9T28N577/X/54EDByoxMVHdunXT+++/r8mTJ9s4WSDippnExMSovLw84Fh5ebmioqKMeNWmPgkJCa0+GGbMmKGPPvpImzdvvuS/jOrbx5iYmOYc8YoEs74LtW3bVoMHD9aBAweaaborExERoZtvvlmSNHToUG3fvl2vvfaa3nzzzYvODcW9k4Jb44Va+/6VlJToxIkTAa/s+nw+bd68WYsXL1Z1dbXCw8MDrgmlfbyc9V2ote/hha677jrdeuut9c5r1/5xz00zSUpKUmFhYcCxjRs3NvjeuQlKS0vVpUsXu8eok2VZmjFjhlavXq1PPvlEPXr0uOQ1obSPl7O+C/l8Pu3atavV7uGFamtrVV1dXedzobR3DWlojRdq7ft31113adeuXSotLfU/hg0bpoceekilpaV1fuMPpX28nPVdqLXv4YVOnz6tgwcP1juvbfvXrLcrG6SystLauXOntXPnTkuSlZOTY+3cudP67rvvLMuyrMzMTGvChAn+8w8dOmS1a9fOeuKJJ6xvvvnGysvLs8LDw63169fbtYRLCnaNr776qrVmzRrr22+/tXbt2mXNnDnTCgsLsz7++GO7ltCgadOmWS6XyyoqKrKOHz/uf5w5c8Z/zoQJE6zMzEz/nz///HOrTZs21iuvvGJ988031vz58622bdtau3btsmMJDbqc9T377LPWhg0brIMHD1olJSXW73//eysyMtLas2ePHUtoUGZmprVp0ybr8OHD1tdff21lZmZaDofD+te//mVZVmjv3XnBrjGU9q8+F36ayIR9/LVLrS/U9vDPf/6zVVRUZB0+fNj6/PPPreTkZKtz587WiRMnLMtqPftH3DTS+Y89X/hIT0+3LMuy0tPTrZEjR150TXx8vBUREWH17NnTevvtt1t87mAEu8aXXnrJuummm6zIyEirU6dO1qhRo6xPPvnEnuEboa61SQrYl5EjR/rXe977779v3XrrrVZERITVr18/a+3atS07eCNdzvpmzZpl3XjjjVZERITldrutMWPGWDt27Gj54Rvh4Ycftrp162ZFRERY119/vXXXXXf5v+lbVmjv3XnBrjGU9q8+F37zN2Eff+1S6wu1PUxLS7O6dOliRUREWLGxsVZaWpp14MAB//OtZf8clmVZzfvaEAAAQMvhnhsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABgFOIGAAAYhbgBAABGIW4AhLyTJ08qJiZGCxYs8B/bunWrIiIiVFhYaONkAOzAL84EYIR169YpNTVVW7duVa9evRQfH6/7779fOTk5do8GoIURNwCMMX36dH388ccaNmyYdu3ape3bt8vpdNo9FoAWRtwAMMbZs2fVv39/lZWVqaSkRAMGDLB7JAA24J4bAMY4ePCgjh07ptraWh05csTucQDYhFduABihpqZGCQkJio+PV69evZSbm6tdu3YpOjra7tEAtDDiBoARnnjiCa1atUpfffWV2rdvr5EjR8rlcumjjz6yezQALYy3pQCEvKKiIuXm5urdd99VVFSUwsLC9O677+qzzz7TkiVL7B4PQAvjlRsAAGAUXrkBAABGIW4AAIBRiBsAAGAU4gYAABiFuAEAAEYhbgAAgFGIGwAAYBTiBgAAGIW4AQAARiFuAACAUYgbAABglP8HQ3iFolCGb4cAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cdf = thinkstats2.Cdf(t)\n",
    "thinkplot.Cdf(cdf)\n",
    "thinkplot.Config(xlabel='x', ylabel='CDF', loc='upper left')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9dd502d1",
   "metadata": {},
   "source": [
    "## Representing CDFs\n",
    "\n",
    "`thinkstats2` provides a class named Cdf that represents CDFs. The\n",
    "fundamental methods Cdf provides are:\n",
    "\n",
    "-   `Prob(x)`: Given a value `x`, computes the probability\n",
    "    $p = CDF(x)$. The bracket operator is equivalent to `Prob`.\n",
    "\n",
    "-   `Value(p)`: Given a probability `p`, computes the corresponding\n",
    "    value, `x`; that is, the **inverse CDF** of `p`."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e8e5b681",
   "metadata": {},
   "source": [
    "The Cdf constructor can take as an argument a list of values, a pandas\n",
    "Series, a Hist, Pmf, or another Cdf. The following code makes a Cdf for\n",
    "the distribution of pregnancy lengths in the NSFG:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "053b138d",
   "metadata": {},
   "outputs": [],
   "source": [
    "cdf = thinkstats2.Cdf(live.prglngth, label='prglngth')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edecadc5",
   "metadata": {},
   "source": [
    "`thinkplot` provides a function named `Cdf` that plots Cdfs as lines:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "cae85939",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtbklEQVR4nO3df3QU5b3H8c9mSTaEkAQaSQIEg1d+iEjQIGnUAEo0UqUF6z1c9UKKBZVCC0arRPmhVg21gtFKTYViqBcLylW8F5B7MZAoJQoGEKzyUxSukgRazIaEJHR37h8etm4JPxZ2M8mT9+ucOYedeWbmuw/Y/XTmmXkclmVZAgAAMESY3QUAAAAEE+EGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAo7ewuoLl5vV59/fXX6tixoxwOh93lAACAc2BZlmpqatS1a1eFhZ352kybCzdff/21kpOT7S4DAACch4MHD6p79+5nbNPmwk3Hjh0lfds5MTExNlcDAADOhdvtVnJysu93/EzaXLg5eSsqJiaGcAMAQCtzLkNKGFAMAACMQrgBAABGIdwAAACjtLkxN+fK4/HoxIkTdpeBMwgPD5fT6bS7DABAC0O4+SeWZamiokLffPON3aXgHMTFxSkxMZF3FgEAfAg3/+RksOnSpYuioqL40WyhLMtSXV2dqqqqJElJSUk2VwQAaCkIN9/h8Xh8weZ73/ue3eXgLNq3by9JqqqqUpcuXbhFBQCQxIBiPyfH2ERFRdlcCc7Vyb8rxkcBAE4i3DSBW1GtB39XAIB/RrgBAABGsTXcvPfeexo5cqS6du0qh8OhFStWnHWfkpISXXXVVXK5XLr00ktVVFQU8joBAEDrYeuA4traWqWmpuruu+/Wbbfddtb2+/fv1y233KL77rtPS5YsUXFxsSZMmKCkpCRlZ2c3Q8Vtz2OPPaYVK1Zo27ZtRp0LAFoDj8erY3UNdpdx3mKiI20ZPmBruBkxYoRGjBhxzu0LCwvVs2dPzZ07V5J02WWXacOGDXruuecIN62Mw+HQW2+9pVGjRtldCgDY4mzB5b2P9qhoxcZmrCj4Fj2Zo9iO7Zv9vK3qUfCysjJlZWX5rcvOzta0adNOu09DQ4MaGv7xj8ftdp/z+SzLkvtYfcB1BlOoUm9jY6MiIiKCflwAQNsILi1Zqwo3FRUVSkhI8FuXkJAgt9ut48eP+9578l35+fl6/PHHz+t87mP1unvG4vPaN1jONfUOGzZM/fv3lyS9+uqrCg8P16RJk/TEE0/I4XAoJSVFP/3pT7Vnzx6tWLFCt912m4qKirRgwQI98cQT+utf/6rs7GxlZmbqiSeeOO0bmn/yk5/om2++0XXXXae5c+eqsbFR//Zv/6aCggKFh4dLkg4dOqQJEyZo3bp1SkxM1FNPPaVHHnlE06ZN07Rp05SSkiJJGj16tCTp4osv1hdffOE7x6uvvqqZM2fq6NGjGjFihBYsWKCOHTuefycCQDMq3bxbC5dvUF19o92ltFnGPy2Vl5en6upq33Lw4EG7SwqZxYsXq127dtq0aZOef/55zZs3TwsXLvRtf/bZZ5WamqqtW7dq5syZ+vOf/6z77rtPU6dO1bZt23TjjTfqqaeeOut51q9fr3379mn9+vVavHixioqK/AZ2jxs3Tl9//bVKSkr0n//5n3r55Zd9bxKWpM2bN0uSXnnlFR06dMj3WZL27dunFStWaOXKlVq5cqVKS0s1Z86cIPQOAISex+Ml2LQArerKTWJioiorK/3WVVZWKiYmpsmrNpLkcrnkcrmaozzbJScn67nnnpPD4VCfPn20Y8cOPffcc5o4caIk6YYbbtADDzzga//oo49qxIgRevDBByVJvXv31saNG7Vy5coznqdTp0568cUX5XQ61bdvX91yyy0qLi7WxIkTtXPnTr377rvavHmzBg0aJElauHChevXq5dv/oosukvSPeaG+y+v1qqioyHelZuzYsSouLj6n0AUAdjtW1xCSYPOTUddoyKBeZ2/YwsRER9py3lYVbjIyMrR69Wq/dWvXrlVGRoZNFbUs3//+9/3G52RkZGju3LnyeDyS5AsbJ+3atct3a+ikwYMHnzXcXH755X5THSQlJWnHjh2+Y7Zr105XXXWVb/ull16qTp06ndN3SElJ8bsFlZSU5HfVBwBMc7bgEh3lktNp/I2WoLI13Bw7dkx79+71fd6/f7+2bdumzp07q0ePHsrLy9NXX32lP/7xj5Kk++67Ty+++KIeeugh3X333Vq3bp1ef/11rVq1KiT1xURHatGTOSE5diA1BEuHDh2CcpyTY2tOcjgc8nq9Lf7YAGCHgrwxiunQ9P+WE1xCw9Zw89FHH+n666/3fc7NzZUk5eTkqKioSIcOHdKBAwd823v27KlVq1bp/vvv1/PPP6/u3btr4cKFIXsM3OFw2PII2/n68MMP/T5/8MEH6tWr12knlOzTp4/feBdJp3wOVJ8+ffT3v/9dW7duVVpamiRp7969Onr0qF+78PBw3xUlAGhNzvQklLv21CdsYzpEtqrfEhPYGm6GDRsmy7JOu72ptw8PGzZMW7duDWFVrdeBAweUm5ure++9V1u2bNFvf/tb3zuBmvLzn/9cQ4YM0bx58zRy5EitW7dO77zzzgU9et63b19lZWXpnnvu0UsvvaTw8HA98MADat++vd9xU1JSVFxcrGuvvVYul+ucb1sBgJ14Eqp14FqYQcaNG6fjx49r8ODBmjx5sqZOnap77rnntO2vvfZaFRYWat68eUpNTdWaNWt0//33KzLywm6F/fGPf1RCQoKGDBmi0aNHa+LEierYsaPfcefOnau1a9cqOTlZV1555QWdDwCaA09CtR4O60yXTgzkdrsVGxur6upqxcTE+G2rr6/X/v371bNnzwv+gW9uw4YN08CBA1VQUHBBxzn5xNP7778fnMIk/d///Z+Sk5P17rvvavjw4UE7rtS6/84AtC7VNccDfvdZVGSEip7+CeNqguBMv9//rFU9LYXge/bZZ3XjjTeqQ4cOeuedd7R48WL97ne/u6Bjrlu3TseOHdMVV1yhQ4cO6aGHHlJKSoqGDBkSpKoBoOWLiozQhNuvI9jYgHDTxm3atEnPPPOMampqdMkll+iFF17QhAkTLuiYJ06c0COPPKLPP/9cHTt21DXXXKMlS5ac8iQUALR2PAnVMhFuDFFSUnJe+73++uvBLUTfzvfFRKYA2gKehGqZiJRNaGPDkFo1/q4AAP+McPMdJ2+b1NXV2VwJztXJvytueQEATuK21Hc4nU7FxcX5XvcfFRV1Qe98QehYlqW6ujpVVVUpLi7utC8qBAC0PYSbf3JyIkfmM2odmpp8EwDQthFu/onD4VBSUpK6dOmiEydO2F0OziA8PJwrNgCAUxBuTsPpdPLDCQBtTKDzRqFlItwAACDmjTIJT0sBANo85o0yC+EGANDmHatrCDjYREVGKDrKFaKKcCEINwAABIh5o1o2xtwAANAE5o1qvQg3AAA0gXmjWi9iJwAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBR2tldAAAAzcHj8epYXUOT29y19c1cDUKJcAMAMF7p5t1auHyD6uob7S4FzYDbUgAAo3k8XoJNG0O4AQAY7VhdQ8DBJioyQtFRrhBVhFAj3AAA8B1RkRGacPt1cjr5iWytGHMDAGhzCvLGKKZDZJPboqNcBJtWjnADAGhzYjpEKrZje7vLQIgQTQEAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAU28PN/PnzlZKSosjISKWnp2vTpk1nbF9QUKA+ffqoffv2Sk5O1v3336/6+vpmqhYAALR0toabZcuWKTc3V7Nnz9aWLVuUmpqq7OxsVVVVNdn+tdde0/Tp0zV79mx99tln+sMf/qBly5bpkUceaebKAQBAS2VruJk3b54mTpyo8ePHq1+/fiosLFRUVJQWLVrUZPuNGzfq2muv1Z133qmUlBTddNNNuuOOO854taehoUFut9tvAQAA5rIt3DQ2Nqq8vFxZWVn/KCYsTFlZWSorK2tyn2uuuUbl5eW+MPP5559r9erV+sEPfnDa8+Tn5ys2Nta3JCcnB/eLAACAFqWdXSc+cuSIPB6PEhIS/NYnJCRo586dTe5z55136siRI7ruuutkWZb+/ve/67777jvjbam8vDzl5ub6PrvdbgIOAAAGs31AcSBKSkr09NNP63e/+522bNmiN998U6tWrdKvfvWr0+7jcrkUExPjtwAAAHPZduUmPj5eTqdTlZWVfusrKyuVmJjY5D4zZ87U2LFjNWHCBEnSFVdcodraWt1zzz169NFHFRbWqrIaAAAIAdvSQEREhNLS0lRcXOxb5/V6VVxcrIyMjCb3qaurOyXAOJ1OSZJlWaErFgAAtBq2XbmRpNzcXOXk5GjQoEEaPHiwCgoKVFtbq/Hjx0uSxo0bp27duik/P1+SNHLkSM2bN09XXnml0tPTtXfvXs2cOVMjR470hRwAANC22RpuxowZo8OHD2vWrFmqqKjQwIEDtWbNGt8g4wMHDvhdqZkxY4YcDodmzJihr776ShdddJFGjhypp556yq6vAAAAWhiH1cbu57jdbsXGxqq6uprBxQDQBlTXHNfdMxb7rVv0ZI5iO7a3qSKcj0B+vxmBCwAAjEK4AQAARiHcAAAAoxBuAACAUWx9WgoAgGDweLw6VtfQ5DZ3bX0zVwO7EW4AAK1a6ebdWrh8g+rqG+0uBS0Et6UAAK2Wx+Ml2OAUhBsAQKt1rK4h4GATFRmh6ChXiCpCS0C4AQC0GVGREZpw+3VyOvn5MxljbgAARinIG6OYDpFNbouOchFs2gDCDQDAKDEdIplaoY0jvgIAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADCK7eFm/vz5SklJUWRkpNLT07Vp06Yztv/mm280efJkJSUlyeVyqXfv3lq9enUzVQsAAFq6dnaefNmyZcrNzVVhYaHS09NVUFCg7Oxs7dq1S126dDmlfWNjo2688UZ16dJFy5cvV7du3fTll18qLi6u+YsHAAAtkq3hZt68eZo4caLGjx8vSSosLNSqVau0aNEiTZ8+/ZT2ixYt0t/+9jdt3LhR4eHhkqSUlJQznqOhoUENDQ2+z263O3hfAAAAtDi23ZZqbGxUeXm5srKy/lFMWJiysrJUVlbW5D7/9V//pYyMDE2ePFkJCQnq37+/nn76aXk8ntOeJz8/X7Gxsb4lOTk56N8FAAC0HLaFmyNHjsjj8SghIcFvfUJCgioqKprc5/PPP9fy5cvl8Xi0evVqzZw5U3PnztWTTz552vPk5eWpurratxw8eDCo3wMAALQstt6WCpTX61WXLl308ssvy+l0Ki0tTV999ZV+85vfaPbs2U3u43K55HK5mrlSAABgF9vCTXx8vJxOpyorK/3WV1ZWKjExscl9kpKSFB4eLqfT6Vt32WWXqaKiQo2NjYqIiAhpzQAAoOWz7bZURESE0tLSVFxc7Fvn9XpVXFysjIyMJve59tprtXfvXnm9Xt+63bt3KykpiWADAAAk2fyem9zcXC1YsECLFy/WZ599pkmTJqm2ttb39NS4ceOUl5fnaz9p0iT97W9/09SpU7V7926tWrVKTz/9tCZPnmzXVwAAAC2MrWNuxowZo8OHD2vWrFmqqKjQwIEDtWbNGt8g4wMHDigs7B/5Kzk5Wf/zP/+j+++/XwMGDFC3bt00depUPfzww3Z9BQAA0MI4LMuy7C6iObndbsXGxqq6uloxMTF2lwMAuADVNcd194zFfusWPZmj2I7tbaoIoRLI77ft0y8AAAAEE+EGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCgBhZtx48appqbG9/njjz/WiRMngl4UAADA+Qoo3CxZskTHjx/3fc7MzNTBgweDXhQAAMD5CijcWJZ1xs8AAAB2Y8wNAAAwSrtAd/j0009VUVEh6dsrNzt37tSxY8f82gwYMCA41QEAAAQo4HAzfPhwv9tRt956qyTJ4XDIsiw5HA55PJ7gVQgAABCAgMLN/v37Q1UHAABAUAQUbi6++OJQ1QEAABAUAd+WkqQ9e/bo7bff1hdffCGHw6GePXtq1KhRuuSSS4JdHwAAQEACDjf5+fmaNWuWvF6vunTpIsuydPjwYU2fPl1PP/20HnzwwVDUCQAAcE4CehR8/fr1mjFjhh599FEdOXJEhw4dUkVFhS/cTJ8+Xe+9916oagUAADirgK7cFBYWasKECXrsscf81nfu3FlPPPGEKioq9NJLL2nIkCHBrBEAAOCcBXTlZtOmTRo7duxpt48dO1YffPDBBRcFAABwvgIKN5WVlUpJSTnt9p49e/pe8AcAAGCHgMJNfX29IiIiTrs9PDxcjY2NF1wUAADA+Qr4aamFCxcqOjq6yW01NTUXXBAAAMCFCCjc9OjRQwsWLDhrGwAAALsEFG6++OKLEJUBAAAQHAGNuVm3bp369esnt9t9yrbq6mpdfvnlev/994NWHAAAQKACCjcFBQWaOHGiYmJiTtkWGxure++9V/PmzQtacQAAAIEKKNx8/PHHuvnmm0+7/aabblJ5efkFFwUAAHC+An7PTXh4+Gm3t2vXTocPH77gogAAAM5XQOGmW7du+uSTT067ffv27UpKSrrgogAAAM5XQOHmBz/4gWbOnKn6+vpTth0/flyzZ8/WrbfeGrTiAAAAAhXQo+AzZszQm2++qd69e2vKlCnq06ePJGnnzp2aP3++PB6PHn300ZAUCgAAcC4CCjcJCQnauHGjJk2apLy8PFmWJUlyOBzKzs7W/PnzlZCQEJJCAQAAzkXA0y9cfPHFWr16tY4ePaq9e/fKsiz16tVLnTp1CkV9AAAAAQk43JzUqVMnXX311cGsBQAA4IIFNKAYAACgpSPcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGCUFhFu5s+fr5SUFEVGRio9PV2bNm06p/2WLl0qh8OhUaNGhbZAAADQatgebpYtW6bc3FzNnj1bW7ZsUWpqqrKzs1VVVXXG/b744gs9+OCDyszMbKZKAQBAa2B7uJk3b54mTpyo8ePHq1+/fiosLFRUVJQWLVp02n08Ho/uuusuPf7447rkkkuasVoAANDS2RpuGhsbVV5erqysLN+6sLAwZWVlqays7LT7PfHEE+rSpYt++tOfnvUcDQ0NcrvdfgsAADCXreHmyJEj8ng8SkhI8FufkJCgioqKJvfZsGGD/vCHP2jBggXndI78/HzFxsb6luTk5AuuGwAAtFy235YKRE1NjcaOHasFCxYoPj7+nPbJy8tTdXW1bzl48GCIqwQAAHZqZ+fJ4+Pj5XQ6VVlZ6be+srJSiYmJp7Tft2+fvvjiC40cOdK3zuv1SpLatWunXbt26V/+5V/89nG5XHK5XCGoHgAAtES2XrmJiIhQWlqaiouLfeu8Xq+Ki4uVkZFxSvu+fftqx44d2rZtm2/54Q9/qOuvv17btm3jlhMAALD3yo0k5ebmKicnR4MGDdLgwYNVUFCg2tpajR8/XpI0btw4devWTfn5+YqMjFT//v399o+Li5OkU9YDAIC2yfZwM2bMGB0+fFizZs1SRUWFBg4cqDVr1vgGGR84cEBhYa1qaBAAALCRw7Isy+4impPb7VZsbKyqq6sVExNjdzkAgAtQXXNcd89Y7Ldu0ZM5iu3Y3qaKECqB/H5zSQQAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGaWd3AQAAnInH49WxuoYmt7lr65u5GrQGhBsAQItVunm3Fi7foLr6RrtLQSvCbSkAQIvk8XgJNjgvhBsAQIt0rK4h4GATFRmh6ChXiCpCa0G4AQAYISoyQhNuv05OJz9tbR1jbgAArUZB3hjFdIhsclt0lItgA0mEGwBAKxLTIVKxHdvbXQZaOCIuAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRWkS4mT9/vlJSUhQZGan09HRt2rTptG0XLFigzMxMderUSZ06dVJWVtYZ2wMAgLbF9nCzbNky5ebmavbs2dqyZYtSU1OVnZ2tqqqqJtuXlJTojjvu0Pr161VWVqbk5GTddNNN+uqrr5q5cgAA0BLZHm7mzZuniRMnavz48erXr58KCwsVFRWlRYsWNdl+yZIl+tnPfqaBAweqb9++Wrhwobxer4qLi5u5cgAA0BLZGm4aGxtVXl6urKws37qwsDBlZWWprKzsnI5RV1enEydOqHPnzk1ub2hokNvt9lsAAIC5bA03R44ckcfjUUJCgt/6hIQEVVRUnNMxHn74YXXt2tUvIH1Xfn6+YmNjfUtycvIF1w0AAFou229LXYg5c+Zo6dKleuuttxQZ2fREanl5eaqurvYtBw8ebOYqAQBAc7J14sz4+Hg5nU5VVlb6ra+srFRiYuIZ93322Wc1Z84cvfvuuxowYMBp27lcLrlcrqDUCwAAWj5br9xEREQoLS3NbzDwycHBGRkZp93vmWee0a9+9SutWbNGgwYNao5SAQBAK2HrlRtJys3NVU5OjgYNGqTBgweroKBAtbW1Gj9+vCRp3Lhx6tatm/Lz8yVJv/71rzVr1iy99tprSklJ8Y3NiY6OVnR0tG3fAwAAtAy2h5sxY8bo8OHDmjVrlioqKjRw4ECtWbPGN8j4wIEDCgv7xwWml156SY2Njbr99tv9jjN79mw99thjzVk6AOACeDxeHatrOO12d219M1YDkzgsy7LsLqI5ud1uxcbGqrq6WjExMXaXAwBtUunm3Vq4fIPq6hsD2m/RkzmK7dg+RFWhJQvk97tVPy0FAGh9PB7veQUb4FwRbgAAzepYXcN5BZuoyAhFR/H0K86OcAMAaPGiIiM04fbr5HTys4Wzs31AMQAABXljFNOh6ZexSlJ0lItgg3NGuAEA2C6mQyQDhRE0xGAAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArTLwAAgs7j8epYXUOT29y19c1cDdoawg0AIKhKN+/WwuUbVFffaHcpaKO4LQUACBqPx0uwge0INwCAoDlW1xBwsImKjFB0lCtEFaEtItwAAGwTFRmhCbdfJ6eTnyMED2NuAAAhVZA3RjEdIpvcFh3lItgg6Ag3AICQiukQqdiO7e0uA20IcRkAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFF4WgoAEBDmjUJLR7gBAJwz5o1Ca8BtKQDAOWHeKLQWhBsAwDlh3ii0FoQbAEBIMG8U7MKYGwDAeWPeKLREhBsAwHlj3ii0RERqAABgFMINAAAwCuEGAAAYhXADAACMwoBiAIAPUyvABIQbAIAkplaAOQg3ANBGnOmqjMfr1Qv/sa6ZKwJCg3ADAG1AKK7KMLUCWirCDQAYoLmvyjC1Aloywg0AtHKhGiuz4ImxcoY1HV6YWgEtGeEGAFoxj8cbkttNE26/Tp1jOwTtmEBzItwAQCt2rK7hvIINV2VgMsINALRwwXz3DFdl0BYQbgDARmcKLpL03kd7VLRiY0DHLMgbo5gOkU1u46oM2gLCDQDYJFQDgWM6RCq2Y/ugHhNoTYjvAGCDUAwElnj3DCARbgDAFuc7EPhMePcM8C1uSwFAK/GTUddoyKBep93OeBrgW4QbAAiRQJ9yYiAwEByEGwA4D6F4yomBwEBwEG4AtClnCyXn4nyCC4DmQ7gB0GaE6tHrYOApJyB4WsQN3Pnz5yslJUWRkZFKT0/Xpk2bztj+jTfeUN++fRUZGakrrrhCq1evbqZKAQTK4/Gquua47cvfqmv1wn+sa7HBhqecgOCx/crNsmXLlJubq8LCQqWnp6ugoEDZ2dnatWuXunTpckr7jRs36o477lB+fr5uvfVWvfbaaxo1apS2bNmi/v372/ANJMuy5D4W2CvQgbaA2zff4iknoHk5LMuy7CwgPT1dV199tV588UVJktfrVXJysn7+859r+vTpp7QfM2aMamtrtXLlSt+673//+xo4cKAKCwvPej63263Y2FhVV1crJiYmKN+huua47p6xOCjHAtC6EFyA5hHI77etV24aGxtVXl6uvLw837qwsDBlZWWprKysyX3KysqUm5vrty47O1srVqxosn1DQ4MaGv4xeNDtdl944QCMcKaZsc8FwQVomWwNN0eOHJHH41FCQoLf+oSEBO3cubPJfSoqKppsX1FR0WT7/Px8Pf7448EpGIARmBkbMJvtY25CLS8vz+9Kj9vtVnJyso0VAW3T2W7fNCeuuABmszXcxMfHy+l0qrKy0m99ZWWlEhMTm9wnMTExoPYul0suV2gfr4yJjtSiJ3NCeg6gNSNMAGhOtoabiIgIpaWlqbi4WKNGjZL07YDi4uJiTZkypcl9MjIyVFxcrGnTpvnWrV27VhkZGc1QcdMcDgdvFQUAoIWw/bZUbm6ucnJyNGjQIA0ePFgFBQWqra3V+PHjJUnjxo1Tt27dlJ+fL0maOnWqhg4dqrlz5+qWW27R0qVL9dFHH+nll1+282sAAIAWwvZwM2bMGB0+fFizZs1SRUWFBg4cqDVr1vgGDR84cEBh33ma4ZprrtFrr72mGTNm6JFHHlGvXr20YsUK295xAwAAWhbb33PT3ELxnhsAABBagfx+M8IPAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABjF9ukXmtvJFzK73W6bKwEAAOfq5O/2uUys0ObCTU1NjSQpOTnZ5koAAECgampqFBsbe8Y2bW5uKa/Xq6+//lodO3aUw+EI6rHdbreSk5N18OBB5q0KIfq5edDPzYN+bj70dfMIVT9blqWamhp17drVb0LtprS5KzdhYWHq3r17SM8RExPDfzjNgH5uHvRz86Cfmw993TxC0c9nu2JzEgOKAQCAUQg3AADAKISbIHK5XJo9e7ZcLpfdpRiNfm4e9HPzoJ+bD33dPFpCP7e5AcUAAMBsXLkBAABGIdwAAACjEG4AAIBRCDcAAMAohJsgmT9/vlJSUhQZGan09HRt2rTJ7pJavffee08jR45U165d5XA4tGLFCr/tlmVp1qxZSkpKUvv27ZWVlaU9e/bYU2wrlZ+fr6uvvlodO3ZUly5dNGrUKO3atcuvTX19vSZPnqzvfe97io6O1o9//GNVVlbaVHHr9dJLL2nAgAG+F5tlZGTonXfe8W2nn4Nvzpw5cjgcmjZtmm8d/Rwcjz32mBwOh9/St29f33a7+5lwEwTLli1Tbm6uZs+erS1btig1NVXZ2dmqqqqyu7RWrba2VqmpqZo/f36T25955hm98MILKiws1IcffqgOHTooOztb9fX1zVxp61VaWqrJkyfrgw8+0Nq1a3XixAnddNNNqq2t9bW5//779d///d964403VFpaqq+//lq33XabjVW3Tt27d9ecOXNUXl6ujz76SDfccIN+9KMf6S9/+Ysk+jnYNm/erN///vcaMGCA33r6OXguv/xyHTp0yLds2LDBt832frZwwQYPHmxNnjzZ99nj8Vhdu3a18vPzbazKLJKst956y/fZ6/VaiYmJ1m9+8xvfum+++cZyuVzWn/70JxsqNENVVZUlySotLbUs69s+DQ8Pt9544w1fm88++8ySZJWVldlVpjE6depkLVy4kH4OspqaGqtXr17W2rVrraFDh1pTp061LIt/z8E0e/ZsKzU1tcltLaGfuXJzgRobG1VeXq6srCzfurCwMGVlZamsrMzGysy2f/9+VVRU+PV7bGys0tPT6fcLUF1dLUnq3LmzJKm8vFwnTpzw6+e+ffuqR48e9PMF8Hg8Wrp0qWpra5WRkUE/B9nkyZN1yy23+PWnxL/nYNuzZ4+6du2qSy65RHfddZcOHDggqWX0c5ubODPYjhw5Io/Ho4SEBL/1CQkJ2rlzp01Vma+iokKSmuz3k9sQGK/Xq2nTpunaa69V//79JX3bzxEREYqLi/NrSz+fnx07digjI0P19fWKjo7WW2+9pX79+mnbtm30c5AsXbpUW7Zs0ebNm0/Zxr/n4ElPT1dRUZH69OmjQ4cO6fHHH1dmZqY++eSTFtHPhBsAkr79f7uffPKJ331zBFefPn20bds2VVdXa/ny5crJyVFpaandZRnj4MGDmjp1qtauXavIyEi7yzHaiBEjfH8eMGCA0tPTdfHFF+v1119X+/btbazsW9yWukDx8fFyOp2njAKvrKxUYmKiTVWZ72Tf0u/BMWXKFK1cuVLr169X9+7dfesTExPV2Niob775xq89/Xx+IiIidOmllyotLU35+flKTU3V888/Tz8HSXl5uaqqqnTVVVepXbt2ateunUpLS/XCCy+oXbt2SkhIoJ9DJC4uTr1799bevXtbxL9nws0FioiIUFpamoqLi33rvF6viouLlZGRYWNlZuvZs6cSExP9+t3tduvDDz+k3wNgWZamTJmit956S+vWrVPPnj39tqelpSk8PNyvn3ft2qUDBw7Qz0Hg9XrV0NBAPwfJ8OHDtWPHDm3bts23DBo0SHfddZfvz/RzaBw7dkz79u1TUlJSy/j33CzDlg23dOlSy+VyWUVFRdann35q3XPPPVZcXJxVUVFhd2mtWk1NjbV161Zr69atliRr3rx51tatW60vv/zSsizLmjNnjhUXF2e9/fbb1vbt260f/ehHVs+ePa3jx4/bXHnrMWnSJCs2NtYqKSmxDh065Fvq6up8be677z6rR48e1rp166yPPvrIysjIsDIyMmysunWaPn26VVpaau3fv9/avn27NX36dMvhcFj/+7//a1kW/Rwq331ayrLo52B54IEHrJKSEmv//v3Wn//8ZysrK8uKj4+3qqqqLMuyv58JN0Hy29/+1urRo4cVERFhDR482Prggw/sLqnVW79+vSXplCUnJ8eyrG8fB585c6aVkJBguVwua/jw4dauXbvsLbqVaap/JVmvvPKKr83x48etn/3sZ1anTp2sqKgoa/To0dahQ4fsK7qVuvvuu62LL77YioiIsC666CJr+PDhvmBjWfRzqPxzuKGfg2PMmDFWUlKSFRERYXXr1s0aM2aMtXfvXt92u/vZYVmW1TzXiAAAAEKPMTcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwDajKKiIsXFxdldBoAQI9wAAACjEG4AAIBRCDcAbLNy5UrFxcXJ4/FIkrZt2yaHw6Hp06f72kyYMEH//u//LknasGGDMjMz1b59eyUnJ+sXv/iFamtrfW0bGhr04IMPqlu3burQoYPS09NVUlJy2vMfPnxYgwYN0ujRo9XQ0KCjR4/qrrvu0kUXXaT27durV69eeuWVV0Lz5QGEDOEGgG0yMzNVU1OjrVu3SpJKS0sVHx/vF0hKS0s1bNgw7du3TzfffLN+/OMfa/v27Vq2bJk2bNigKVOm+NpOmTJFZWVlWrp0qbZv365//dd/1c0336w9e/accu6DBw8qMzNT/fv31/Lly+VyuTRz5kx9+umneuedd/TZZ5/ppZdeUnx8fMj7AUBwMSs4AFulpaXpjjvu0IMPPqjRo0fr6quv1uOPP66//vWvqq6uVvfu3bV79279+te/ltPp1O9//3vfvhs2bNDQoUNVW1urqqoqXXLJJTpw4IC6du3qa5OVlaXBgwfr6aefVlFRkaZNm6YPP/xQN954o0aPHq2CggI5HA5J0g9/+EPFx8dr0aJFzd4PAIKHKzcAbDV06FCVlJTIsiy9//77uu2223TZZZdpw4YNKi0tVdeuXdWrVy99/PHHKioqUnR0tG/Jzs6W1+vV/v37tWPHDnk8HvXu3duvTWlpqfbt2+c73/Hjx5WZmanbbrtNzz//vC/YSNKkSZO0dOlSDRw4UA899JA2btxoR5cAuEDt7C4AQNs2bNgwLVq0SB9//LHCw8PVt29fDRs2TCUlJTp69KiGDh0qSTp27Jjuvfde/eIXvzjlGD169ND27dvldDpVXl4up9Pptz06Otr3Z5fLpaysLK1cuVK//OUv1a1bN9+2ESNG6Msvv9Tq1au1du1aDR8+XJMnT9azzz4bom8PIBQINwBsdXLczXPPPecLMsOGDdOcOXN09OhRPfDAA5Kkq666Sp9++qkuvfTSJo9z5ZVXyuPxqKqqSpmZmac9X1hYmF599VXdeeeduv7661VSUuJ3G+uiiy5STk6OcnJylJmZqV/+8peEG6CV4bYUAFt16tRJAwYM0JIlSzRs2DBJ0pAhQ7Rlyxbt3r3bF3gefvhhbdy4UVOmTNG2bdu0Z88evf32274Bxb1799Zdd92lcePG6c0339T+/fu1adMm5efna9WqVX7ndDqdWrJkiVJTU3XDDTeooqJCkjRr1iy9/fbb2rt3r/7yl79o5cqVuuyyy5qvMwAEBeEGgO2GDh0qj8fjCzedO3dWv379lJiYqD59+kiSBgwYoNLSUu3evVuZmZm68sorNWvWLL+rLq+88orGjRunBx54QH369NGoUaO0efNm9ejR45RztmvXTn/60590+eWX64YbblBVVZUiIiKUl5enAQMGaMiQIXI6nVq6dGmz9AGA4OFpKQAAYBSu3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKP8PxbMeGUY/ftEAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 800x600 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Cdf(cdf)\n",
    "thinkplot.Show(xlabel='weeks', ylabel='CDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47787fe6",
   "metadata": {},
   "source": [
    "Figure [\\[cumulative_prglngth_cdf\\]](#cumulative_prglngth_cdf){reference-type=\"ref\"\n",
    "reference=\"cumulative_prglngth_cdf\"} shows the result. One way to read a\n",
    "CDF is to look up percentiles. For example, it looks like about 10% of\n",
    "pregnancies are shorter than 36 weeks, and about 90% are shorter than 41\n",
    "weeks. The CDF also provides a visual representation of the shape of the\n",
    "distribution. Common values appear as steep or vertical sections of the\n",
    "CDF; in this example, the mode at 39 weeks is apparent. There are few\n",
    "values below 30 weeks, so the CDF in this range is flat.\n",
    "\n",
    "It takes some time to get used to CDFs, but once you do, I think you\n",
    "will find that they show more information, more clearly, than PMFs."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8d7e7e9",
   "metadata": {},
   "source": [
    "`Cdf` provides `Prob`, which evaluates the CDF; that is, it computes the fraction of values less than or equal to the given value.  For example, 94% of pregnancy lengths are less than or equal to 41."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "a8e71ba9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9406427634455619"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cdf.Prob(41)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40719965",
   "metadata": {},
   "source": [
    "`Value` evaluates the inverse CDF; given a fraction, it computes the corresponding value.  For example, the median is the value that corresponds to 0.5."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "1900d744",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "39"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cdf.Value(0.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3bed54d9",
   "metadata": {},
   "source": [
    "## Comparing CDFs\n",
    "\n",
    "CDFs are especially useful for comparing distributions. For example,\n",
    "here is the code that plots the CDF of birth weight for first babies and\n",
    "others."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4089ef39",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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uVq3bt1AlQXe2a71u+++08UXX6zzzz9fubm5+uqrrzRt2jRFR0f7940M1Erfvn2NCRMmuB87HA6jdevWxsyZM02sqv4dOXLEkGSsWbPG7FLqxYkTJ4wOHToYq1atMgYOHGhMnDjR7JICbvLkycbFF19sdhkN4uqrrzbGjRvndezaa681br75ZpMqqh+SjKVLl7ofO51OIyUlxXjyySfdx37++WcjKirK+Mc//mFChYFT8Vp92bhxoyHJ+OGHHxqmqHpS1bX+5z//Mdq0aWPs2LHDaNu2rfHMM880eG2B5utaR44cadxyyy11fm9GdGqhrKxMmzdvVlZWlvtYWFiYsrKytGHDBhMrq38FBQWSpBYtWphcSf2YMGGCrr76aq+/W6t577331Lt3b/3ud79TUlKSevTooYULF5pdVr246KKLlJOTo927d0uStm3bpnXr1umqq64yubL6tW/fPuXl5Xn9f5yQkKB+/fpZ/jNKOv05ZbPZ1KxZM7NLCTin06lRo0bpgQceUNeuXc0up944nU4tX75cHTt21NChQ5WUlKR+/fpVeyuvKgSdWjh27JgcDoeSk5O9jicnJysvL8+kquqf0+nUpEmTNGDAAF1wwQVmlxNwb7zxhrZs2aKZM2eaXUq9+v777zVv3jx16NBBH330kcaPH697771Xr776qtmlBdyUKVN0ww036Pzzz1dERIR69OihSZMm6eabbza7tHrl+hwKtc8oSTp58qQmT56sG2+80ZKbXz7xxBMKDw/Xvffea3Yp9erIkSMqKirS448/riuvvFL/+te/9Nvf/lbXXnut1qxZ49d7hdzu5ai9CRMmaMeOHVq3bp3ZpQTcwYMHNXHiRK1atcr/+79Bxul0qnfv3nrsscckST169NCOHTs0f/58jRkzxuTqAuuf//ynXnvtNb3++uvq2rWrtm7dqkmTJql169aWu1acbkz+/e9/L8MwNG/ePLPLCbjNmzfr2Wef1ZYtW2Sz2cwup145nU5J0m9+8xvdd999kqTu3btr/fr1mj9/vgYOHFjj92JEpxYSExNlt9uVn5/vdTw/P18pKSkmVVW/7r77bn3wwQf65JNPdM4555hdTsBt3rxZR44cUc+ePRUeHq7w8HCtWbNGzz33nMLDw+VwOMwuMWBSU1PVpUsXr2OdO3f2eyZDMHjggQfcozoXXnihRo0apfvuu8/yo3auz6FQ+oxyhZwffvhBq1atsuRozqeffqojR44oPT3d/Tn1ww8/6H//93+VkZFhdnkBlZiYqPDw8IB8VhF0aiEyMlK9evVSTk6O+5jT6VROTo769+9vYmWBZxiG7r77bi1dulQff/yx2rVrZ3ZJ9eKKK67Q9u3btXXrVvdX7969dfPNN2vr1q2y2+1mlxgwAwYMqLREwO7du9W2bVuTKqo/JSUlCgvz/piz2+3u3xatql27dkpJSfH6jCosLNQXX3xhuc8o6UzI2bNnj1avXq2WLVuaXVK9GDVqlL766iuvz6nWrVvrgQce0EcffWR2eQEVGRmpPn36BOSziltXtZSdna0xY8aod+/e6tu3r+bMmaPi4mKNHTvW7NICasKECXr99df17rvvKi4uzn1/PyEhQTExMSZXFzhxcXGV+o5iY2PVsmVLy/Uj3Xfffbrooov02GOP6fe//702btyoBQsWaMGCBWaXFnDDhw/XX//6V6Wnp6tr16768ssv9fTTT2vcuHFml1ZnRUVF2rt3r/vxvn37tHXrVrVo0ULp6emaNGmS/vKXv6hDhw5q166dpk2bptatW2vEiBHmFV1L1V1ramqqrr/+em3ZskUffPCBHA6H+3OqRYsWioyMNKvsWjnb32vFEBcREaGUlBR16tSpoUuts7Nd6wMPPKCRI0fq0ksv1WWXXaaVK1fq/fffV25urn/fqM7ztkLY888/b6SnpxuRkZFG3759jc8//9zskgJOks+vV155xezS6p1Vp5cbhmG8//77xgUXXGBERUUZ559/vrFgwQKzS6oXhYWFxsSJE4309HQjOjraOPfcc42HHnrIKC0tNbu0Ovvkk098/tscM2aMYRinp5hPmzbNSE5ONqKioowrrrjC2LVrl7lF11J117pv374qP6c++eQTs0v329n+XisK5unlNbnWl19+2TjvvPOM6OhoIzMz01i2bJnf38dmGBZYIhQAAMAHenQAAIBlEXQAAIBlEXQAAIBlEXQAAIBlEXQAAIBlEXQAAIBlEXQAAIBlEXQAAIBlEXQA1FlGRobmzJlT4/P3798vm82mrVu3BqyGSy+9VK+//nrA3q8++XP9x44dU1JSkv7zn//Uf2GABRF0ANTZpk2bdOeddwb0PRcvXqxmzZrV6Nz33ntP+fn5uuGGGwJaQ2OQmJio0aNHa8aMGWaXAgQlgg6AOmvVqpWaNGli2vd/7rnnNHbs2Eo7lVvF2LFj9dprr+mnn34yuxQg6FjzUwFAlT744AM1a9ZMDodDkrR161bZbDZNmTLFfc7tt9+uW265xf143bp1uuSSSxQTE6O0tDTde++9Ki4udj9f8dbVt99+q4svvljR0dHq0qWLVq9eLZvNpmXLlnnV8v333+uyyy5TkyZNlJmZqQ0bNkiScnNzNXbsWBUUFMhms8lms+mRRx7xeT1Hjx7Vxx9/rOHDh3sdt9lsmjdvnq666irFxMTo3HPP1VtvveV1zvbt23X55ZcrJiZGLVu21J133qmioiL384MGDdKkSZO8XjNixAjdeuutXtf+2GOPady4cYqLi1N6enqlneA3btyoHj16KDo6Wr1799aXX37p9fzx48d18803q1WrVoqJiVGHDh30yiuvuJ/v2rWrWrduraVLl/r8MwBQNYIOEGIuueQSnThxwv3Dds2aNUpMTFRubq77nDVr1mjQoEGSpO+++05XXnmlrrvuOn311VdasmSJ1q1bp7vvvtvn+zscDo0YMUJNmjTRF198oQULFuihhx7yee5DDz2k+++/X1u3blXHjh1144036tSpU7rooos0Z84cxcfH6/Dhwzp8+LDuv/9+n++xbt06NWnSRJ07d6703LRp03Tddddp27Ztuvnmm3XDDTdo586dkqTi4mINHTpUzZs316ZNm/Tmm29q9erVVV5XdWbPnu0OMP/zP/+j8ePHa9euXZKkoqIiXXPNNerSpYs2b96sRx55pNK1TJs2Td98840+/PBD7dy5U/PmzVNiYqLXOX379tWnn37qd21AyAvYfusAgkbPnj2NJ5980jAMwxgxYoTx17/+1YiMjDROnDhh/Oc//zEkGbt37zYMwzBuu+0248477/R6/aeffmqEhYUZv/zyi2EYhtG2bVvjmWeeMQzDMD788EMjPDzcOHz4sPv8VatWGZKMpUuXGoZhGPv27TMkGS+99JL7nK+//tqQZOzcudMwDMN45ZVXjISEhLNeyzPPPGOce+65lY5LMu666y6vY/369TPGjx9vGIZhLFiwwGjevLlRVFTkfn758uVGWFiYkZeXZxiGYQwcONCYOHGi13v85je/McaMGeN+3LZtW+OWW25xP3Y6nUZSUpIxb948wzAM48UXXzRatmzp/rMyDMOYN2+eIcn48ssvDcMwjOHDhxtjx46t9jrvu+8+Y9CgQdWeA6AyRnSAEDRw4EDl5ubKMAx9+umnuvbaa9W5c2etW7dOa9asUevWrdWhQwdJ0rZt27R48WI1bdrU/TV06FA5nU7t27ev0nvv2rVLaWlpSklJcR/r27evzzq6devm/u/U1FRJ0pEjR/y6ll9++UXR0dE+n+vfv3+lx64RnZ07dyozM1OxsbHu5wcMGCCn0+kejakpz+uw2WxKSUlxX8fOnTvVrVs3rxor1jV+/Hi98cYb6t69ux588EGtX7++0veIiYlRSUmJX3UBkMLNLgBAwxs0aJAWLVqkbdu2KSIiQueff74GDRqk3NxcHT9+XAMHDnSfW1RUpD/84Q+69957K71Penp6neqIiIhw/7fNZpMkOZ1Ov94jMTFRx48fr1MdVQkLC5NhGF7HysvLK53neR3S6Wvx5zquuuoq/fDDD1qxYoVWrVqlK664QhMmTNBTTz3lPuenn35Sq1at/LwCAIzoACHI1afzzDPPuEONK+jk5ua6+3MkqWfPnvrmm2903nnnVfqKjIys9N6dOnXSwYMHlZ+f7z62adMmv2uMjIx0N0xXp0ePHsrLy/MZdj7//PNKj129PJ07d9a2bdu8mqo/++wzhYWFqVOnTpJOzyY7fPiw+3mHw6EdO3b4dR2dO3fWV199pZMnT1ZZl+t7jRkzRv/3f/+nOXPmVGpo3rFjh3r06OHX9wZA0AFCUvPmzdWtWze99tpr7lBz6aWXasuWLdq9e7fXiM7kyZO1fv163X333dq6dav27Nmjd999t8qm3cGDB6t9+/YaM2aMvvrqK3322Wd6+OGHJZ0ZtamJjIwMFRUVKScnR8eOHavytk2PHj2UmJiozz77rNJzb775phYtWqTdu3drxowZ2rhxo7vum2++WdHR0RozZox27NihTz75RPfcc49GjRql5ORkSdLll1+u5cuXa/ny5fr22281fvx4/fzzzzW+Bkm66aabZLPZdMcdd+ibb77RihUrvEZqJGn69Ol69913tXfvXn399df64IMPvJqrS0pKtHnzZg0ZMsSv7w2AoAOErIEDB8rhcLiDTosWLdSlSxelpKS4RzSk0/0na9as0e7du3XJJZeoR48emj59ulq3bu3zfe12u5YtW6aioiL16dNHt99+u3vWVVW9NL5cdNFFuuuuuzRy5Ei1atVKs2bNqvL7udaZqejRRx/VG2+8oW7duunvf/+7/vGPf6hLly6SpCZNmuijjz7STz/9pD59+uj666/XFVdcoRdeeMH9+nHjxmnMmDEaPXq0Bg4cqHPPPVeXXXZZja9Bkpo2bar3339f27dvV48ePfTQQw/piSee8DonMjJSU6dOVbdu3XTppZfKbrfrjTfecD//7rvvKj09XZdccolf3xuAZDMq3oAGgAD77LPPdPHFF2vv3r1q3759wN8/Ly9PXbt21ZYtW9S2bVtJp0ePli5dqhEjRgT8+zW0X/3qV7r33nt10003mV0KEHRoRgYQcEuXLlXTpk3VoUMH7d27VxMnTtSAAQPqJeRIUkpKil5++WUdOHDAHXSs4tixY7r22mt14403ml0KEJQIOgAC7sSJE5o8ebIOHDigxMREZWVlafbs2fX6Pa0wcuNLYmKiHnzwQbPLAIIWt64AAIBl0YwMAAAsi6ADAAAsi6ADAAAsi6ADAAAsi6ADAAAsi6ADAAAsi6ADAAAsi6ADAAAs6/8DFPkeHtVBhZ8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 800x600 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "first_cdf = thinkstats2.Cdf(firsts.totalwgt_lb, label='first')\n",
    "other_cdf = thinkstats2.Cdf(others.totalwgt_lb, label='other')\n",
    "\n",
    "thinkplot.PrePlot(2)\n",
    "thinkplot.Cdfs([first_cdf, other_cdf])\n",
    "thinkplot.Show(xlabel='weight (pounds)', ylabel='CDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "397bbdae",
   "metadata": {},
   "source": [
    "Compared to\n",
    "Figure [\\[nsfg_birthwgt_pmf\\]](#nsfg_birthwgt_pmf){reference-type=\"ref\"\n",
    "reference=\"nsfg_birthwgt_pmf\"}, this figure makes the shape of the\n",
    "distributions, and the differences between them, much clearer. We can\n",
    "see that first babies are slightly lighter throughout the distribution,\n",
    "with a larger discrepancy above the mean."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70b009a7",
   "metadata": {},
   "source": [
    "## Percentile-based statistics\n",
    "\n",
    "Once you have computed a CDF, it is easy to compute percentiles and\n",
    "percentile ranks. The Cdf class provides these two methods:\n",
    "\n",
    "-   `PercentileRank(x)`: Given a value `x`, computes its percentile\n",
    "    rank, $100 \\cdot CDF(x)$.\n",
    "\n",
    "-   `Percentile(p)`: Given a percentile rank `p`, computes the\n",
    "    corresponding value, `x`. Equivalent to `Value(p/100)`.\n",
    "\n",
    "`Percentile` can be used to compute percentile-based summary statistics.\n",
    "For example, the 50th percentile is the value that divides the\n",
    "distribution in half, also known as the **median**. Like the mean, the\n",
    "median is a measure of the central tendency of a distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "a32716e7",
   "metadata": {},
   "outputs": [],
   "source": [
    "weights = live.totalwgt_lb\n",
    "live_cdf = thinkstats2.Cdf(weights, label='live')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "7357bb4f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.375"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "median = live_cdf.Percentile(50)\n",
    "median"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1bcc5a0a",
   "metadata": {},
   "source": [
    "Actually, there are several definitions of \"median,\" each with different\n",
    "properties. But `Percentile(50)` is simple and efficient to compute."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae3de011",
   "metadata": {},
   "source": [
    "Another percentile-based statistic is the **interquartile range** (IQR),\n",
    "which is a measure of the spread of a distribution. The IQR is the\n",
    "difference between the 75th and 25th percentiles."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "f84e5df3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6.5, 8.125)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iqr = (live_cdf.Percentile(25), live_cdf.Percentile(75))\n",
    "iqr"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bad0090a",
   "metadata": {},
   "source": [
    "More generally, percentiles are often used to summarize the shape of a\n",
    "distribution. For example, the distribution of income is often reported\n",
    "in \"quintiles\"; that is, it is split at the 20th, 40th, 60th and 80th\n",
    "percentiles. Other distributions are divided into ten \"deciles\".\n",
    "Statistics like these that represent equally-spaced points in a CDF are\n",
    "called **quantiles**. For more, see\n",
    "<https://en.wikipedia.org/wiki/Quantile>."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5279c66b",
   "metadata": {},
   "source": [
    "## Random numbers\n",
    "\n",
    "Suppose we choose a random sample from the population of live births and\n",
    "look up the percentile rank of their birth weights. Now suppose we\n",
    "compute the CDF of the percentile ranks. What do you think the\n",
    "distribution will look like?\n",
    "\n",
    "Here's how we can compute it. First, we make the Cdf of birth weights:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1e469506",
   "metadata": {},
   "outputs": [],
   "source": [
    "weights = live.totalwgt_lb\n",
    "cdf = thinkstats2.Cdf(weights, label='totalwgt_lb')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65942fac",
   "metadata": {},
   "source": [
    "Then we generate a sample and compute the percentile rank of each value\n",
    "in the sample."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "154d9999",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "sample = np.random.choice(weights, 100, replace=True)\n",
    "ranks = [cdf.PercentileRank(x) for x in sample]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a687ada3",
   "metadata": {},
   "source": [
    "`sample` is a random sample of 100 birth weights, chosen with\n",
    "**replacement**; that is, the same value could be chosen more than once.\n",
    "`ranks` is a list of percentile ranks.\n",
    "\n",
    "Finally we make and plot the Cdf of the percentile ranks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "271a5cc3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7/Y55/Tp0xo7dqzOO+88paWl6V//9V9VUVFhUcX2MGvWLCUkJGjChAneY7RzaBw6dEi/+MUvdN5556lVq1bq27evtm7d6n3dGKPp06erU6dOatWqlfLz8/XZZ59ZWHFscrvdmjZtmrp3765WrVrpoosu0syZM332I6Ktg/fuu+9q6NCh6ty5sxISErR8+XKf1wNp02PHjmnkyJFKT09X27Ztddddd+nEiRPhKdig2ZYuXWqSk5PNokWLzMcff2zGjBlj2rZtayoqKqwuLWYNGTLEvPjii2bnzp1mx44d5pZbbjFdu3Y1J06c8J5z7733mqysLFNaWmq2bt1qrrjiCnPllVdaWHVs27x5s8nOzjaXXXaZGT9+vPc47dx8x44dM926dTN33HGH2bRpk/n888/NO++8Y/bu3es9Z9asWcbpdJrly5ebDz74wNx2222me/fu5tSpUxZWHnsee+wxc95555m3337b7N+/37z22msmLS3NPP30095zaOvgrVy50kyZMsW88cYbRpJ58803fV4PpE1vuukm069fP/Pee++Zv/3tb+biiy82I0aMCEu9hJsQGDx4sBk7dqz3udvtNp07dzYlJSUWVmUvhw8fNpLM+vXrjTHGHD9+3LRs2dK89tpr3nM+/fRTI8mUlZVZVWbMqqqqMj169DCrV6821157rTfc0M6hMWnSJHP11VfX+7rH4zGZmZnmySef9B47fvy4cTgc5pVXXolEibZx6623mjvvvNPn2L/8y7+YkSNHGmNo61A4O9wE0qaffPKJkWS2bNniPee///u/TUJCgjl06FDIa6Rbqplqa2u1bds25efne48lJiYqPz9fZWVlFlZmL5WVlZKk9u3bS5K2bdumb775xqfde/Xqpa5du9LuTTB27FjdeuutPu0p0c6h8tZbbyknJ0c//elP1bFjRw0YMEALFy70vr5//36Vl5f7tLPT6VRubi7tHKQrr7xSpaWl2rNnjyTpgw8+0IYNG3TzzTdLoq3DIZA2LSsrU9u2bZWTk+M9Jz8/X4mJidq0aVPIa4q7jTND7ejRo3K73crIyPA5npGRoV27dllUlb14PB5NmDBBV111lS699FJJUnl5uZKTk9W2bVufczMyMlReXm5BlbFr6dKl2r59u7Zs2XLOa7RzaHz++ed67rnnVFRUpAcffFBbtmzRr3/9ayUnJ6uwsNDblv5+j9DOwZk8ebJcLpd69eqlpKQkud1uPfbYYxo5cqQk0dZhEEiblpeXq2PHjj6vt2jRQu3btw9LuxNuEPXGjh2rnTt3asOGDVaXYjsHDx7U+PHjtXr1aqWkpFhdjm15PB7l5OTo8ccflyQNGDBAO3fu1IIFC1RYWGhxdfby6quv6qWXXtLLL7+sH/zgB9qxY4cmTJigzp0709ZxhG6pZurQoYOSkpLOmT1SUVGhzMxMi6qyj3Hjxuntt9/W2rVrdcEFF3iPZ2Zmqra2VsePH/c5n3YPzrZt23T48GFdfvnlatGihVq0aKH169frmWeeUYsWLZSRkUE7h0CnTp3Up08fn2O9e/fWgQMHJMnblvweab7f/va3mjx5sn72s5+pb9++GjVqlCZOnKiSkhJJtHU4BNKmmZmZOnz4sM/r3377rY4dOxaWdifcNFNycrIGDhyo0tJS7zGPx6PS0lLl5eVZWFlsM8Zo3LhxevPNN7VmzRp1797d5/WBAweqZcuWPu2+e/duHThwgHYPwg033KCPPvpIO3bs8D5ycnI0cuRI7z/Tzs131VVXnbOUwZ49e9StWzdJUvfu3ZWZmenTzi6XS5s2baKdg3Ty5EklJvp+tSUlJcnj8UiircMhkDbNy8vT8ePHtW3bNu85a9askcfjUW5ubuiLCvkQ5Ti0dOlS43A4zOLFi80nn3xi7rnnHtO2bVtTXl5udWkx67777jNOp9OsW7fOfP31197HyZMnvefce++9pmvXrmbNmjVm69atJi8vz+Tl5VlYtT2cOVvKGNo5FDZv3mxatGhhHnvsMfPZZ5+Zl156yaSmppo///nP3nNmzZpl2rZta/7617+aDz/80Pz4xz9menITFBYWmi5duningr/xxhumQ4cO5oEHHvCeQ1sHr6qqyrz//vvm/fffN5LMnDlzzPvvv2++/PJLY0xgbXrTTTeZAQMGmE2bNpkNGzaYHj16MBU82j377LOma9euJjk52QwePNi89957VpcU0yT5fbz44ovec06dOmV++ctfmnbt2pnU1FTzk5/8xHz99dfWFW0TZ4cb2jk0/uu//stceumlxuFwmF69epnnn3/e53WPx2OmTZtmMjIyjMPhMDfccIPZvXu3RdXGLpfLZcaPH2+6du1qUlJSzIUXXmimTJliampqvOfQ1sFbu3at39/JhYWFxpjA2vR///d/zYgRI0xaWppJT083o0ePNlVVVWGpN8GYM5ZtBAAAiHGMuQEAALZCuAEAALZCuAEAALZCuAEAALZCuAEAALZCuAEAALZCuAEAALZCuAEAALZCuAFgSw899JD69+/vfX7HHXdo2LBhltXTmOuuu04TJkywugzAFgg3AGJeQkKCli9f7nPs/vvv99nID0D8INwACAu32+3didkKaWlpOu+888L6HrW1tWH9+QCahnADQNddd53GjRuncePGyel0qkOHDpo2bZrO3HqupqZG999/v7p06aLWrVsrNzdX69at876+ePFitW3bVm+99Zb69Okjh8OhAwcOqKamRpMmTVJWVpYcDocuvvhi/eEPf/Bet3PnTt18881KS0tTRkaGRo0apaNHj/rU9utf/1oPPPCA2rdvr8zMTD300EPe17OzsyVJP/nJT5SQkOB9fna31Nk8Ho9KSkrUvXt3tWrVSv369dPrr7/eYDtlZ2dr5syZKigoUHp6uu655x5J0qRJk9SzZ0+lpqbqwgsv1LRp0/TNN994r6ur5U9/+pOys7PldDr1s5/9TFVVVfW+14oVK+R0OvXSSy81WBOAcxFuAEiSlixZohYtWmjz5s16+umnNWfOHL3wwgve18eNG6eysjItXbpUH374oX7605/qpptu0meffeY95+TJk3riiSf0wgsv6OOPP1bHjh1VUFCgV155Rc8884w+/fRT/ed//qfS0tIkScePH9c///M/a8CAAdq6datWrVqliooK/du//ds5tbVu3VqbNm3S7373Oz3yyCNavXq1JGnLli2SpBdffFFff/2193ljSkpK9Mc//lELFizQxx9/rIkTJ+oXv/iF1q9f3+B1Tz31lPr166f3339f06ZNkyS1adNGixcv1ieffKKnn35aCxcu1O9//3uf6/bt26fly5fr7bff1ttvv63169dr1qxZft/j5Zdf1ogRI/TSSy9p5MiRAX0eAGcIy17jAGLKtddea3r37m08Ho/32KRJk0zv3r2NMcZ8+eWXJikpyRw6dMjnuhtuuMEUFxcbY4x58cUXjSSzY8cO7+u7d+82kszq1av9vu/MmTPNjTfe6HPs4MGDRpLZvXu3t7arr77a55xBgwaZSZMmeZ9LMm+++abPOTNmzDD9+vXzPi8sLDQ//vGPjTHGnD592qSmppqNGzf6XHPXXXeZESNG+K3VGGO6detmhg0bVu/rdZ588kkzcOBAn1pSU1ONy+XyHvvtb39rcnNzvc+vvfZaM378eDNv3jzjdDrNunXrGn0fAP61sDZaAYgWV1xxhRISErzP8/LyNHv2bLndbn300Udyu93q2bOnzzU1NTU+41qSk5N12WWXeZ/v2LFDSUlJuvbaa/2+5wcffKC1a9d67+Scad++fd73O/NnSlKnTp10+PDh4D/k/9u7d69OnjypH/7whz7Ha2trNWDAgAavzcnJOefYsmXL9Mwzz2jfvn06ceKEvv32W6Wnp/uck52drTZt2jT4GV5//XUdPnxYf//73zVo0KBgPxaA/0e4AdCoEydOKCkpSdu2bVNSUpLPa2cGk1atWvkEpFatWjX6c4cOHaonnnjinNc6derk/eeWLVv6vJaQkNCswconTpyQ9N24li5duvi85nA4Gry2devWPs/Lyso0cuRIPfzwwxoyZIicTqeWLl2q2bNn+5wXyGcYMGCAtm/frkWLFiknJ8enLQEEjnADQJK0adMmn+fvvfeeevTooaSkJA0YMEBut1uHDx/WNddcE/DP7Nu3rzwej9avX6/8/PxzXr/88sv1l7/8RdnZ2WrRoum/jlq2bCm32x3w+WcOeK7vrlKgNm7cqG7dumnKlCneY19++WWTftZFF12k2bNn67rrrlNSUpLmzZvXrNqAeMWAYgCSpAMHDqioqEi7d+/WK6+8omeffVbjx4+XJPXs2VMjR45UQUGB3njjDe3fv1+bN29WSUmJVqxYUe/PzM7OVmFhoe68804tX75c+/fv17p16/Tqq69KksaOHatjx45pxIgR2rJli/bt26d33nlHo0ePDiqsZGdnq7S0VOXl5frHP/7R6Plt2rTR/fffr4kTJ2rJkiXat2+ftm/frmeffVZLliwJ+H0lqUePHjpw4ICWLl2qffv26ZlnntGbb74Z1M84U8+ePbV27Vr95S9/YVE/oIkINwAkSQUFBTp16pQGDx6ssWPHavz48d6pztJ3s5EKCgr0m9/8RpdccomGDRumLVu2qGvXrg3+3Oeee0633367fvnLX6pXr14aM2aMqqurJUmdO3fW3//+d7ndbt14443q27evJkyYoLZt2yoxMfBfT7Nnz9bq1auVlZXV6JiZOjNnztS0adNUUlKi3r1766abbtKKFSvUvXv3gN9Xkm677TZNnDhR48aNU//+/bVx40bvLKqmuuSSS7RmzRq98sor+s1vftOsnwXEowRjzljIAkBcuu6669S/f3/NnTvX6lIAoNm4cwMAAGyFcAMAAGyFbikAAGAr3LkBAAC2QrgBAAC2QrgBAAC2QrgBAAC2QrgBAAC2QrgBAAC2QrgBAAC2QrgBAAC28n8WVBFD7PovtAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 800x600 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rank_cdf = thinkstats2.Cdf(ranks)\n",
    "thinkplot.Cdf(rank_cdf)\n",
    "thinkplot.Show(xlabel='percentile rank', ylabel='CDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e9acd5d",
   "metadata": {},
   "source": [
    "This figure shows the result. The CDF is\n",
    "approximately a straight line, which means that the distribution is\n",
    "uniform.\n",
    "\n",
    "That outcome might be non-obvious, but it is a consequence of the way\n",
    "the CDF is defined. What this figure shows is that 10% of the sample is\n",
    "below the 10th percentile, 20% is below the 20th percentile, and so on,\n",
    "exactly as we should expect."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "365491b7",
   "metadata": {},
   "source": [
    "So, regardless of the shape of the CDF, the distribution of percentile\n",
    "ranks is uniform. This property is useful, because it is the basis of a\n",
    "simple and efficient algorithm for generating random numbers with a\n",
    "given CDF. Here's how:\n",
    "\n",
    "-   Choose a percentile rank uniformly from the range 0--100.\n",
    "\n",
    "-   Use `Cdf.Percentile` to find the value in the distribution that\n",
    "    corresponds to the percentile rank you chose.\n",
    "\n",
    "Cdf provides an implementation of this algorithm, called `Random`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "a9d31255",
   "metadata": {},
   "outputs": [],
   "source": [
    "def Random(self):\n",
    "    return self.Percentile(random.uniform(0, 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4c9d399",
   "metadata": {},
   "source": [
    "Cdf also provides `Sample`, which takes an integer, `n`, and returns a\n",
    "list of `n` values chosen at random from the Cdf."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15c9cf4f",
   "metadata": {},
   "source": [
    "## Comparing percentile ranks\n",
    "\n",
    "Percentile ranks are useful for comparing measurements across different\n",
    "groups. For example, people who compete in foot races are usually\n",
    "grouped by age and gender. To compare people in different age groups,\n",
    "you can convert race times to percentile ranks.\n",
    "\n",
    "A few years ago I ran the James Joyce Ramble 10K in Dedham MA; I\n",
    "finished in 42:44, which was 97th in a field of 1633. I beat or tied\n",
    "1537 runners out of 1633, so my percentile rank in the field is 94%.\n",
    "\n",
    "More generally, given position and field size, we can compute percentile\n",
    "rank:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "a80ccc89",
   "metadata": {},
   "outputs": [],
   "source": [
    "def PositionToPercentile(position, field_size):\n",
    "    beat = field_size - position + 1\n",
    "    percentile = 100.0 * beat / field_size\n",
    "    return percentile"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eedfdc96",
   "metadata": {},
   "source": [
    "In my age group, denoted M4049 for \"male between 40 and 49 years of\n",
    "age\", I came in 26th out of 256. So my percentile rank in my age group\n",
    "was 90%.\n",
    "\n",
    "If I am still running in 10 years (and I hope I am), I will be in the\n",
    "M5059 division. Assuming that my percentile rank in my division is the\n",
    "same, how much slower should I expect to be?\n",
    "\n",
    "I can answer that question by converting my percentile rank in M4049 to\n",
    "a position in M5059. Here's the code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "463b71a3",
   "metadata": {},
   "outputs": [],
   "source": [
    "def PercentileToPosition(percentile, field_size):\n",
    "    beat = percentile * field_size / 100.0\n",
    "    position = field_size - beat + 1\n",
    "    return position"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "39cbb101",
   "metadata": {},
   "source": [
    "There were 171 people in M5059, so I would have to come in between 17th\n",
    "and 18th place to have the same percentile rank. The finishing time of\n",
    "the 17th runner in M5059 was 46:05, so that's the time I will have to\n",
    "beat to maintain my percentile rank."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "327f0a79",
   "metadata": {},
   "source": [
    "## Glossary\n",
    "\n",
    "-   **percentile rank**: The percentage of values in a distribution that\n",
    "    are less than or equal to a given value.\n",
    "\n",
    "-   **percentile**: The value associated with a given percentile rank.\n",
    "\n",
    "-   **cumulative distribution function (CDF)**: A function that maps\n",
    "    from values to their cumulative probabilities. $CDF(x)$ is the\n",
    "    fraction of the sample less than or equal to $x$.\n",
    "\n",
    "-   **inverse CDF**: A function that maps from a cumulative probability,\n",
    "    $p$, to the corresponding value.\n",
    "\n",
    "-   **median**: The 50th percentile, often used as a measure of central\n",
    "    tendency.\n",
    "\n",
    "-   **interquartile range**: The difference between the 75th and 25th\n",
    "    percentiles, used as a measure of spread.\n",
    "\n",
    "-   **quantile**: A sequence of values that correspond to equally spaced\n",
    "    percentile ranks; for example, the quartiles of a distribution are\n",
    "    the 25th, 50th and 75th percentiles.\n",
    "\n",
    "-   **replacement**: A property of a sampling process. \"With\n",
    "    replacement\" means that the same value can be chosen more than once;\n",
    "    \"without replacement\" means that once a value is chosen, it is\n",
    "    removed from the population."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37ae0af7",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Exercises"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce30c7e3",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "**Exercise:** How much did you weigh at birth? If you don’t know, call your mother or someone else who knows. Using the NSFG data (all live births), compute the distribution of birth weights and use it to find your percentile rank. If you were a first baby, find your percentile rank in the distribution for first babies. Otherwise use the distribution for others. If you are in the 90th percentile or higher, call your mother back and apologize."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "65835159",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "85.90419436167774"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "first_cdf.PercentileRank(8.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "f1bf49cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "82.35294117647058"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "other_cdf.PercentileRank(8.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c69d3eec",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "**Exercise:** The numbers generated by `numpy.random.random` are supposed to be uniform between 0 and 1; that is, every value in the range should have the same probability.\n",
    "\n",
    "Generate 1000 numbers from `numpy.random.random` and plot their PMF.  What goes wrong?\n",
    "\n",
    "Now plot the CDF. Is the distribution uniform?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "bfaded3b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "t = np.random.random(1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "8122cccd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAGwCAYAAACJjDBkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABa0klEQVR4nO3de3wU1d0/8M/u5rJJIAkUyQUiROUqNwFJgyitpk0qtaRYFEwhRApqyVMtP7GFIviAikWkXESpFwT6gEFapRZoaApSLKRBAig3ERULEhIuIbfNfff8/gg7sLBZdje7O2dmP+/XKy9l98zOd86cOfOdM2d3DEIIASIiIiLyiFHtAIiIiIi0iEkUERERkReYRBERERF5gUkUERERkReYRBERERF5gUkUERERkReYRBERERF5IUTtAPTMZrOhpKQE7du3h8FgUDscIiIicoMQAtXV1UhMTITR2Pp4E5MoPyopKUFSUpLaYRAREZEXTp8+ja5du7b6PpMoP2rfvj2Alp0QHR2tcjRERETkjqqqKiQlJSnn8dYwifIj+y286OhoJlFEREQac6OpOJxYTkREROQFJlFEREREXmASRUREROQFJlFEREREXmASRUREROQFJlFEREREXmASRUREROQFJlFEREREXmASRUREROQFJlFEREREXlA9iVqxYgW6d+8Os9mMlJQU7N2712X5jRs3onfv3jCbzejfvz+2bt3q8L4QAnPmzEFCQgIiIiKQlpaGEydOOJR54YUXMHz4cERGRiI2Ntbpek6dOoVRo0YhMjISnTt3xowZM9Dc3NymbSUiIiL9UDWJ2rBhA6ZPn465c+di//79GDhwINLT03Hu3Dmn5ffs2YPx48dj8uTJOHDgADIzM5GZmYnDhw8rZRYuXIhly5Zh5cqVKCoqQlRUFNLT01FfX6+UaWxsxNixY/HEE084XY/VasWoUaPQ2NiIPXv2YM2aNVi9ejXmzJnj2wogIiIi7RIqGjZsmJg2bZryb6vVKhITE8WCBQucln/ooYfEqFGjHF5LSUkRjz32mBBCCJvNJuLj48XLL7+svF9RUSHCw8PFu+++e93nvfPOOyImJua617du3SqMRqMoLS1VXnv99ddFdHS0aGhocHv7KisrBQBRWVnp9jJERESkLnfP3yFqJW+NjY0oLi7GzJkzldeMRiPS0tJQWFjodJnC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wYPK309+8hN8//vfx8GDB5GUlBTI8DXFm3Z911134csvv1QSVQD44osvkJCQwASqFd7Uc21t7XWJkj1xFXx0rU+pck7025R18lheXp4IDw8Xq1evFkePHhVTp04VsbGxorS0VAghxIQJE8Rvf/tbpfzu3btFSEiIWLRokTh27JiYO3cuf+LADZ7W80svvSTCwsLEn//8Z3H27Fnlr7q6Wq1N0AxP6/pa/Hae+zyt61OnTon27duL3Nxccfz4cbF582bRuXNn8fzzz6u1CZrgaT3PnTtXtG/fXrz77rvi66+/Fv/4xz/ErbfeKh566CG1NkEzqqurxYEDB8SBAwcEALF48WJx4MAB8d///lcIIcRvf/tbMWHCBKW8/ScOZsyYIY4dOyZWrFjBnzgINsuXLxc333yzCAsLE8OGDRP/+c9/lPdGjhwpsrOzHcq/9957omfPniIsLEzcfvvtYsuWLQGOWJs8qedu3boJANf9zZ07N/CBa5CnbfpqTKI842ld79mzR6SkpIjw8HBxyy23iBdeeEE0NzcHOGrt8aSem5qaxHPPPSduvfVWYTabRVJSkvjlL38pLl26FPjANeajjz5y2vfa6zc7O1uMHDnyumUGDRokwsLCxC233CLeeecdv8ZoEILjiURERESe4pwoIiIiIi8wiSIiIiLyApMoIiIiIi8wiSIiIiLyApMoIiIiIi8wiSIiIiLyApMoIiIiIi8wiSIiIiLyApMoItI1g8GATZs2qR2Gz3zzzTcwGAw4ePCg2qEQBT0mUUTkV5MmTYLBYIDBYEBoaCiSk5PxzDPPoL6+Xu3QNCkpKQlnz55Fv3793F5m0qRJyMzM9F9QREEqRO0AiEj/MjIy8M4776CpqQnFxcXIzs6GwWDA73//e7VD05TGxkaEhYUhPj5e7VCICByJIqIACA8PR3x8PJKSkpCZmYm0tDQUFBQo71+8eBHjx49Hly5dEBkZif79++Pdd991+Izvfe97+NWvfoVnnnkGHTt2RHx8PJ577jmHMidOnMA999wDs9mMvn37OqzD7tChQ7j33nsRERGB73znO5g6dSpqamqU9+2jNi+++CLi4uIQGxuLefPmobm5GTNmzEDHjh3RtWtXvPPOO61u7xtvvIHExETYbDaH10ePHo1HH30UAPDVV19h9OjRiIuLQ7t27XDnnXfin//8p0P57t27Y/78+Zg4cSKio6MxderU627nWa1WTJ48GcnJyYiIiECvXr2wdOlS5TOee+45rFmzBn/961+VEcGdO3cCAE6fPo2HHnoIsbGx6NixI0aPHo1vvvmm1e0iIkdMoogooA4fPow9e/YgLCxMea2+vh5DhgzBli1bcPjwYUydOhUTJkzA3r17HZZds2YNoqKiUFRUhIULF2LevHlKomSz2TBmzBiEhYWhqKgIK1euxG9+8xuH5S0WC9LT09GhQwd88skn2LhxI/75z38iNzfXodyOHTtQUlKCXbt2YfHixZg7dy5+/OMfo0OHDigqKsLjjz+Oxx57DN9++63TbRw7diwuXryIjz76SHmtvLwc+fn5yMrKAgDU1NTg/vvvx/bt23HgwAFkZGTggQcewKlTpxw+a9GiRRg4cCAOHDiAZ5999rp12Ww2dO3aFRs3bsTRo0cxZ84czJo1C++99x4A4Omnn8ZDDz2EjIwMnD17FmfPnsXw4cPR1NSE9PR0tG/fHh9//DF2796Ndu3aISMjA42NjS73IRFdJoiI/Cg7O1uYTCYRFRUlwsPDBQBhNBrFn//8Z5fLjRo1Svy///f/lH+PHDlSjBgxwqHMnXfeKX7zm98IIYTYtm2bCAkJEWfOnFHe//vf/y4AiA8++EAIIcQbb7whOnToIGpqapQyW7ZsEUajUZSWlirxduvWTVitVqVMr169xN133638u7m5WURFRYl333231fhHjx4tHn30UeXff/zjH0ViYqLD517r9ttvF8uXL1f+3a1bN5GZmelQ5uTJkwKAOHDgQKufM23aNPHggw8q/87OzhajR492KPOnP/1J9OrVS9hsNuW1hoYGERERIbZt29bqZxPRFZwTRUR+9/3vfx+vv/46LBYL/vCHPyAkJAQPPvig8r7VasWLL76I9957D2fOnEFjYyMaGhoQGRnp8DkDBgxw+HdCQgLOnTsHADh27BiSkpKQmJiovJ+amupQ/tixYxg4cCCioqKU1+666y7YbDYcP34ccXFxAIDbb78dRuOVgfq4uDiHidwmkwnf+c53lHU7k5WVhSlTpuC1115DeHg41q1bh3HjximfW1NTg+eeew5btmzB2bNn0dzcjLq6uutGooYOHdrqOuxWrFiBVatW4dSpU6irq0NjYyMGDRrkcplPP/0UX375Jdq3b+/wen19Pb766qsbrpOIOLGciAIgKioKt912GwBg1apVGDhwIN5++21MnjwZAPDyyy9j6dKlWLJkCfr374+oqCg89dRT191WCg0Ndfi3wWC4bt6RLzhbj6frfuCBByCEwJYtW3DnnXfi448/xh/+8Afl/aeffhoFBQVYtGgRbrvtNkREROBnP/vZddt8dcLnTF5eHp5++mm88sorSE1NRfv27fHyyy+jqKjI5XI1NTUYMmQI1q1bd917N910k8tliagFkygiCiij0YhZs2Zh+vTpeOSRRxAREYHdu3dj9OjR+PnPfw6gZZ7PF198gb59+7r9uX369MHp06dx9uxZJCQkAAD+85//XFdm9erVsFgsSnKye/duGI1G9OrVy0db2MJsNmPMmDFYt24dvvzyS/Tq1QuDBw9W3t+9ezcmTZqEn/70pwBakhpvJnXv3r0bw4cPxy9/+UvltWtHksLCwmC1Wh1eGzx4MDZs2IDOnTsjOjra4/USESeWE5EKxo4dC5PJhBUrVgAAevTogYKCAuzZswfHjh3DY489hrKyMo8+My0tDT179kR2djY+/fRTfPzxx/jd737nUCYrKwtmsxnZ2dk4fPgwPvroI/zP//wPJkyYoNzK86WsrCxs2bIFq1atUiaU2/Xo0QPvv/8+Dh48iE8//RSPPPKIV6NqPXr0wL59+7Bt2zZ88cUXePbZZ/HJJ584lOnevTs+++wzHD9+HBcuXEBTUxOysrLQqVMnjB49Gh9//DFOnjyJnTt34le/+lWrE+aJyBGTKCIKuJCQEOTm5mLhwoWwWCyYPXs2Bg8ejPT0dHzve99DfHy8xz8OaTQa8cEHH6Curg7Dhg3DL37xC7zwwgsOZSIjI7Ft2zaUl5fjzjvvxM9+9jPcd999ePXVV324dVfce++96NixI44fP45HHnnE4b3FixejQ4cOGD58OB544AGkp6c7jFS567HHHsOYMWPw8MMPIyUlBRcvXnQYlQKAKVOmoFevXhg6dChuuukm7N69G5GRkdi1axduvvlmjBkzBn369MHkyZNRX1/PkSkiNxmEEELtIIiIiIi0hiNRRERERF5gEkVERETkBSZRRERERF5gEkVERETkBSZRRERERF5gEkVERETkBSZRRERERF5gEkVERETkBSZRRERERF5gEkVERETkBSZRRERERF74/7Y7k+oyeqixAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "pmf = thinkstats2.Pmf(t)\n",
    "thinkplot.Pmf(pmf, linewidth=0.1)\n",
    "thinkplot.Config(xlabel='Random variate', ylabel='PMF')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "2624762e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ZvUzPvvss/r999+1YcOGnG2XLl3SmjVr1LlzZ0nSlStX9Pjjj2v9+vXau3evWrVqpdatW+v06dO5fteECRNUv3597d27V6NGjbrpvSwWiypVqqQlS5bowIEDGj16tIYPH64vvvhCkjRo0CC1b99erVq10vnz53X+/Hk1b95cWVlZio6OVqlSpbR582Zt3bpVJUuWVKtWrZSZmWn3vyGA/5/DnzsOoEiKiYkxfHx8jBIlShj+/v6GJMPb29tYunSp3f2eeOIJ47XXXst5/cADDxj33XdfrpomTZoYQ4YMMQzDMNauXWsUK1bMOHv2bM74N998Y0gyli9fbhiGYcyYMcMICQkxrly5klOzatUqw9vb20hISMjpt0qVKkZ2dnZOTa1atYyWLVvmvL5+/bpRokQJY+HChTb7b9OmjfHCCy/kvP7444+NChUq5Pq9/6tu3brGBx98kPO6SpUqRtu2bXPVnDhxwpBk7N271+bv6du3r/HMM8/kvI6JiTHatGmTq+azzz4zatWqZVgslpxtGRkZRmBgoLF27VqbvxvAX1hzA3iwhx56SB999JHS0tI0adIkFStWTM8880zOeHZ2tsaNG6cvvvhCZ8+eVWZmpjIyMlS8ePFcv6devXq5XoeHh+vChQuSpIMHDyoiIkIVKlTIGW/WrFmu+oMHD6p+/foqUaJEzrYWLVrIYrHo8OHDCg0NlSTVrVtX3t5/TTiHhobmWsDr4+OjO+64I+e9rencubN69uypDz/8UP7+/po/f76ee+65nN975coVjRkzRqtWrdL58+d1/fp1paen3zRz07hxY5vvccO0adM0e/ZsnT59Wunp6crMzFSDBg3s7rN//34dPXpUpUqVyrX92rVrOnbsWJ7vCYAFxYBHK1GihO666y5J0uzZs1W/fn3NmjVLPXr0kCS99957mjJliiZPnqx7771XJUqU0IABA246PeLr65vrtZeX103rWgqDtfcp6Hu3bt1ahmFo1apVatKkiTZv3qxJkybljA8aNEjr1q3ThAkTdNdddykwMFDt2rW76TP/PYhZs2jRIg0aNEjvv/++mjVrplKlSum9997Tjh077O535coVNWrUSPPnz79prFy5cnb3BfAnwg0ASZK3t7eGDx+u2NhYderUSYGBgdq6davatGmj559/XtKf60iOHDmiOnXq5Pv31q5dW2fOnNH58+cVHh4uSfr+++9vqpk7d67S0tJyQsPWrVvl7e2tWrVqFdIn/FNAQICefvppzZ8/X0ePHlWtWrXUsGHDnPGtW7eqW7dueuqppyT9GTZuZTHv1q1b1bx5c7388ss52/535sXPz0/Z2dm5tjVs2FCLFy9W+fLlFRQUVOD3BcCCYgB/8+yzz8rHx0fTpk2TJNWoUUPr1q3Ttm3bdPDgQfXu3VuJiYkF+p1RUVGqWbOmYmJitH//fm3evFkjRozIVdO5c2cFBAQoJiZGP//8szZs2KBXXnlFXbp0yTklVZg6d+6sVatWafbs2TkLiW+oUaOGvvzyS+3bt0/79+9Xp06dbmkWqkaNGtq1a5fWrl2rI0eOaNSoUfrhhx9y1VStWlU//vijDh8+rKSkJGVlZalz584qW7as2rRpo82bN+vEiRPauHGjXn31VZsLpQHkRrgBkKNYsWLq16+f3n33XaWlpWnkyJFq2LChoqOj9eCDDyosLKzAN53z9vbW8uXLlZ6erqZNm+rFF1/U22+/naumePHiWrt2rS5duqQmTZqoXbt2+te//qWpU6cW4qf7y8MPP6wyZcro8OHD6tSpU66xiRMnKiQkRM2bN1fr1q0VHR2da2Ynv3r37q2nn35aHTp0UGRkpH7//fdcsziS1LNnT9WqVUuNGzdWuXLltHXrVhUvXlybNm1S5cqV9fTTT6t27drq0aOHrl27xkwOkE9ehmEYzm4CAACgsDBzAwAA3ArhBgAAuBXCDQAAcCuEGwAA4FYINwAAwK0QbgAAgFsh3AAAALdCuAEAAG6FcAMAANwK4QYAALgVwg0AAHAr/x/C6cc8aI7f9gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "cdf = thinkstats2.Cdf(t)\n",
    "thinkplot.Cdf(cdf)\n",
    "thinkplot.Config(xlabel='Random variate', ylabel='CDF')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9ebec91a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6b80680d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
